2017-07-25 47 views
0

我有他們幾個關鍵字列表Solr的搜索都低於具有空間關鍵字沒有給予正確的結果

經濟型酒店 迪拜酒店 擴展酒店 .... ..

我店(storeName:HotelsStore),並將上面的關鍵字(有空白)添加到我的商店並執行索引索引。如果我們搜索 「經濟型酒店」我的商店:HotelsStore不顯示reults。

但如果我添加「Cheaphotels」沒有空間和索引。如果我搜索「Cheaphotels」,那麼我想要的商店(HotelsStore)正在顯示結果。

注意:我們使用的是lucene 5.4和solr 5.4。

請幫我解決這個問題。

謝謝, Syamala。

+0

什麼字段類型,什麼分析儀適用於現場?這肯定是問題的一個問題,即如何通過過濾器或標記器爲該字段創建令牌。 – MatsLindh

回答

1

嘗試使用WordDelimiterFilter篩選器生成字詞部分storeName字段。

您可以根據需要自定義此過濾器。

只要例如:

一種這樣做的方法是指定generateWordParts = 「1」 catenateWords = 「1」 在用於索引的分析儀,和 generateWordParts = 「1」 在分析裝置中使用用於查詢。鑑於 當前的StandardTokenizer立即刪除了許多字內 分隔符,建議在使用該標記器的 令牌生成器(如WhitespaceTokenizer)之後使用此過濾器。

<tokenizer class="solr.WhitespaceTokenizerFactory"/> 
     <filter class="solr.WordDelimiterFilterFactory" 
      generateWordParts="1" 
      generateNumberParts="1" 
      catenateWords="1" 
      catenateNumbers="1" 
      catenateAll="0" 
      preserveOriginal="1" 
      /> 

GENERATE_WORD_PARTS設置爲1

Causes parts of words to be generated: 

"HotelsStore" => "Hotel" "Store" 

https://lucene.apache.org/core/4_4_0/analyzers-common/org/apache/lucene/analysis/miscellaneous/WordDelimiterFilter.html

+0

感謝您的回覆@Oyeme。 .Cheap酒店,迪拜酒店,擴展酒店是關鍵字添加到商店(它的名字是:hotelsStore)作爲關鍵字不在storeName。我們已經在使用「WordDelimiterFilterFactory」,並且使用瞭如下catenateWords =「1」 catenateNumbers =「1」,但仍面臨同樣的問題。 Thanks..Syamala。 – Syamala

+0

您能否提供更多關於您正在使用的字段,過濾器的信息?您也可以使用分析器來了解字段未顯示的原因。 – Oyeme