solr進階九:solr對數字和單個字符的搜索

solr中配有分詞器,但分詞器裏面有大寫轉換爲小寫的過濾器時,數字就會被過濾。比如123中國ABC123就會被過濾掉了,所以才查1|12|123都會失敗。

Solr 數字字符不能搜索的一個問題》這篇博文說得還算詳細,我就是學這篇文章的。

 

根據賬號來搜索,當賬號在數據庫中是整型變量時,導入到solr中,配置單個數字的過濾字段時,是搜索不出任何信息的,這不知什麼原因,有時間要好好研究一下schema.xml這個配置文件先。

 

schema.xml這個配置文件中加入字段類型:

<fieldType name="text_inclunum" class="solr.TextField" positionIncrementGap="100">
		<analyzer type="index">
			<tokenizer class="solr.WhitespaceTokenizerFactory"/>
			<filter class="solr.EdgeNGramFilterFactory" minGramSize="1" maxGramSize="50" side="front"/>
		</analyzer>
		<analyzer type="query">
			<tokenizer class="solr.WhitespaceTokenizerFactory"/>
			<filter class="solr.EdgeNGramFilterFactory" minGramSize="1" maxGramSize="50" side="front"/>
		</analyzer>
	</fieldType>

"solr.EdgeNGramFilterFactory" minGramSize="1" maxGramSize="50")這個就是從左到右一個一個分詞的。

讓我們的字段使用這個字段類型:

在分析裏面做一下分析,看能不能切割:

沒問題!接着在搜索裏面搜索:

也沒問題,最符合條件的排在前面,其次的排在後面。

剩下的事情就簡單了,按照前面的教程,改一下配置參數,輸入兩個字符就觸發:

最後呈現的結果爲:

前面的是最符合的:


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章