2014-11-05 107 views
13

我正在使用Solr 4+。Solr文本字段和字符串字段 - 不同的搜索行爲

我有幾個字段到我solr架構與不同的solr字段類型。

對文本字段和字符串字段的搜索不同嗎?

因爲我想在字符串字段搜索(這是幾個小領域的副本域)預期不工作。目標字符串字段被索引並存儲。

但是,當我更改文本字段(僅索引)的目標字段時,它工作正常。

你能提出爲什麼會發生這種情況嗎?在搜索方面,solr中的文本和字符串字段究竟有什麼區別?

回答

22

TextFields通常會附加一個標記器和文本分析,這意味着將索引內容分解爲不需要精確匹配的單獨標記 - 每個詞/標記可以單獨匹配以確定整個文檔是否應該是包括在回覆中。

StrFields不能有任何標記化或分析/應用的過濾器,並只給出精確匹配的結果。如果您需要應用分析或過濾器的StrField,則可以使用TextFieldKeywordTokenizer來實現此功能。

0

具有合理的通用跨語言默認值的常規文本字段:它使用StandardTokenizer進行標記,從不區分大小寫的「stopwords.txt」(缺省爲空)以及向下情況中刪除停用詞。僅在查詢時間,它也適用同義詞。

不分析StrField類型,但逐字索引/存儲。

相關問題