2017-10-11 6 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