1. 程式人生 > >solr進階九:solr對數字和單個字元的搜尋

solr進階九:solr對數字和單個字元的搜尋

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

根據賬號來搜尋,當賬號在資料庫中是整型變數時,匯入到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")這個就是從左到右一個一個分詞的。

讓我們的欄位使用這個欄位型別:

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

沒問題!接著在搜尋裡面搜尋:

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

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

最後呈現的結果為:

前面的是最符合的: