2014-05-13 22 views
0

我有一個產品目錄,我使用Elastica客戶端在ElasticSearch中建立索引。ElasticSeach - 獲取不完整和複數的單詞

在實施搜索,我是在輸入檢索詞後附加*這樣,當一個類型whiswhisk他就已經開始看到搜索結果whisky

但是我想顯示poster的結果,當您輸入posters時也是如此。

我能夠使用snowball過濾器實現單數複數結果。但要做到這一點,我必須刪除*

這很糟糕,因爲在輸入完整單詞之前沒有結果顯示。

任何想法,我可以去這個?我的分析代碼:(從here拍攝)

'analysis' => array(
    'analyzer' => array(
     'indexAnalyzer' => array(
      'type' => 'custom', 
      'tokenizer' => 'whitespace', 
      'filter' => array('lowercase', 'mySnowball') 
     ), 
     'searchAnalyzer' => array(
      'type' => 'custom', 
      'tokenizer' => 'whitespace', 
      'filter' => array('lowercase', 'mySnowball') 
     ) 
    ), 
    'filter' => array(
     'mySnowball' => array(
      'type' => 'snowball', 
      'language' => 'English' 
     ) 
    ) 
) 
+0

凹凸!任何人都知道嗎? – Hitesh

回答

0

我去自定義功能。

我用準確的搜索短語搜索而沒有*。我的代碼查找結果計數。如果它是一個不完整的單詞,它可能會返回空結果。所以我追加*到結果查詢並做另一個搜索。

這使得我的自動提示結果更慢,但功能更強。