solr進階九:solr對數字和單個字元的搜尋
阿新 • • 發佈:2019-02-20
solr中配有分詞器,但分詞器裡面有大寫轉換為小寫的過濾器時,數字就會被過濾。比如123中國ABC。123就會被過濾掉了,所以才查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")這個就是從左到右一個一個分詞的。
讓我們的欄位使用這個欄位型別:
在分析裡面做一下分析,看能不能切割:
沒問題!接著在搜尋裡面搜尋:
也沒問題,最符合條件的排在前面,其次的排在後面。
剩下的事情就簡單了,按照前面的教程,改一下配置引數,輸入兩個字元就觸發:
最後呈現的結果為:
前面的是最符合的: