使用Susnpot Gem进行Solr搜索

我目前正在使用太阳黑子gem在我的rails应用程序中实现全文搜索。 通过Sunspot / Solr在我的网站上查询正在运行并返回正确的结果。 但是,当我尝试使用Solr管理页面进行查询时,我很难显示结果。 使用查询字符串*:*我可以显示索引数据库中包含的所有结果,但我无法进行正确的查询。 如果我尝试使用*:*以外的字符串进行查询,例如test ,则不返回任何结果,我留下:

   0 21   *,score on 0 test     2.2 10     

使用字符串: test在实际rails应用程序上进行相同的查询返回超过100个结果。

如何在Solr管理页面中进行查询返回与在rails应用程序中进行的查询相同的项目?

扩展Jayendra的答案(基本上是正确的):

如果我尝试使用*:*以外的字符串进行查询,例如test ,则不会返回任何结果…

该查询是针对defaultSearchField运行的,默认情况下是Sunspot中的text 。 然而,令人困惑的是,太阳黑子没有在该text字段中添加任何text ,因此您的搜索结果是正确的。 由于没有带text字段的文档,因此在text字段中没有包含术语test文档。

例如,你可能有一个title_text字段。 您可以使用q=title_text:test直接查询该字段。

您还可以模仿Sunspot的查询:使用DisMax查询解析器,显式指定要在qf查询的字段。 如果您想查询多个文本字段,更不用说接受DisMax的其他好处,这很有用: q=test&defType=dismax&qf=title_text+body_text

此外,Sunspot将其查询记录到development.log ,这是查找示例的好地方。

*:*基本上会在所有字段中搜索所有字段,因此匹配所有文档。

您在Rails应用程序中搜索的是哪个字段?
默认情况下,Solr管理员的查询会在默认搜索字段(schema.xml)上触发。

 text 

尝试将在solr上触发的查询更改为特定字段,例如q=some_field:test并检查是否返回结果。