solr copyField 導致全文檢索不準確問題

Solr 技術 猿天地 2017-06-09

圖片中是索引拆詞之後的存儲內容。

solr copyField 導致全文檢索不準確問題

業務輸入的搜索詞是上海浦東滬東新村

我們可以看到所有的詞都在索引裡面是有了的

但是就是搜索不出來

最後通過solr admin提供的拆詞分析看出了問題的所在

solr copyField 導致全文檢索不準確問題

可以看到跟實際索引存儲的內容唯一不同的是多了一個 上海浦東

關鍵問題在於為什麼建的索引中是有上海浦東這些詞的,為什麼分詞器沒有拆分成上海浦東這個詞呢

問題是我們的keyword索引是通過copyField來實現多個字段的組合

<copyField source="name" dest="keyword"/>

<copyField source="address" dest="keyword"/>

<copyField source="city" dest="keyword"/>

<copyField source="region" dest="keyword"/>

<copyField source="alias" dest="keyword"/>

<copyField source="addr_alias" dest="keyword"/>

<copyField source="address_num" dest="keyword"/>

不是直接的keyword字段來做的索引

那也就是說city和reigon這2個字段是拼起來的,所以不會被拆成上海浦東

但是如果原始的keyword不是copy的,是完整的一個字符串,那麼就會被拆分成上海浦東,去掉copyField 改成在建索引的時候程序去拼接keyword然後建索引就可以解決問題。

相關推薦

推薦中...