2014-01-15 38 views
2

在Solr中,我們可以在Solr搜索條件中設置所需字符的限制嗎?設置solr搜索項所需字符

例如,我想設置什麼搜索詞的字符限制應返回的所有結果

另一個示例 -

假設,我想設置搜索詞的字符限制爲5。所以當我搜索「蘋果」(5個字符)或「橙色」(5個或更多字符)應返回結果。在這種情況下,如果我搜索「貓」,它不應該返回任何結果,因爲最低要求的字符是5.

我們在哪裏爲Solr中的搜索項設置了這些必需的字符限制?

回答

2

如果你不想索引和/或搜索詞與字符的預定義的時間間隔你可以做到這一點(根據您的具體需求,在指數和/或查詢時間)在你的分析儀配置LengthFilter

在這裏看到:

http://wiki.apache.org/solr/AnalyzersTokenizersTokenFilters#solr.LengthFilterFactory

+0

嗨安德烈。我不是Solr的專家。當你說「如果你不想用預定義的字符間隔索引和/或搜索字詞」,你能解釋一下你的意思嗎? – sunskin

+2

呃,這幾行很難。基本上:你的領域有一個特定的類型,在這種情況下,必須是一個TextField。模式中的TextField具有兩個分析器鏈(索引時間或查詢時間,如果僅定義了一個分析器,則應用於這兩者)。將LengthFilter放在索引分析器中意味着不符合最大和最小長度限制的字段不會被索引;將過濾器放入查詢分析器意味着不符合最小/最大約束條件的搜索項將被忽略。效果是一樣的......但如果你不希望這樣的術語不索引它們。 – Andrea

+1

謝謝安德烈!順便說一句,你可以隨時更新你的答案,當你需要額外的線 – sunskin