2017-10-11 146 views
1

Solr的版本6.1.0Solr的查询的非索引字段搜索

创建一些领域indexed=true上,我特别希望Solr的主查询q搜索的模式。

并且还添加了更多的字段,我只是想选择,所以标记为stored=trueindexed=false

enter image description here

问题现在是,主查询q=India是在非索引字段一样的国家,这是我在图像中指定搜索。

见下 enter image description here

只有当我指定非索引字段的全部价值选择非索引字段的结果。

参见导致了q=Indi enter image description here

如何从非索引字段搜索Solr的限制?

回答

1

根据上面的屏幕截图,您正在将发送到字段country的内容复制到字段_text_中。如果您没有向Solr提供特定字段进行搜索(即,您没有使用qf的dismax处理程序中的一个,或者未将字词作为字段名称的前缀field:value),它会回到默认搜索字段。默认设置为_text_。此字段已建立索引,并且由于您将来自国家/地区字段的内容复制到_text_字段,因此country中的值会受到影响。

如果您不希望发生这种情况,请勿将country中的内容复制到_text_中,或者向Solr提供您想要搜索的实际字段。

+0

我有几个领域(不是全部),我需要搜索的数据,按照https://wiki.apache.org/solr/SchemaXml#Common_field_options,字段可以搜索,如果它被标记为索引= true,那么我什么时候应该将我想要在索引字段上搜索的密钥放到q中,我试图将它放在q(主查询)中,它似乎不工作。 –

+0

如上所述,你可以在(e)dismax处理程序中使用'qf'(查询字段 - 查询哪个字段),这可以让你分开加权不同的字段,给另一个字段赋予更多的权重 - 'qf = field1 field2^2'使field2与field1一样重要),或者你可以使用一个公共字段,就像在这种情况下,你将所有东西都复制到,然后搜索该字段(就像在你当前模式中的'_text_'中一样)。或者你可以使用'q = field:value'在一个特定的字段中寻找命中。 – MatsLindh