2017-08-01 59 views
0

我有一個搜索查詢,在輸入完整的單詞後進行基本搜索。我正在查找3個字母后的自動建議。 例如, 標題 - samsung galaxy s4 我想看到「sam」之後的自動建議,而不是完整的單詞「samsung」。3個字母后的彈性搜索中的自動建議

+0

是文檔此爲web應用程序,我們並不清楚你的問題的web應用的背景下,一個MobileApp –

+0

它應該工作兩個Web應用程序和一個MobileApp。我的後端在node.js + express中。 – Jyothi

+0

您可以在客戶端處理它,只在輸入的字符超過3個字符(不包括空格)時才進行api調用 –

回答

0

您需要爲此使用edgeNGram過濾器。

{ 
    "analysis": { 
    "tokenizer": { 
     "autocomplete_tokenizer": { 
      "type": "edgeNGram", 
      "min_gram": "3", 
      "max_gram": "20" 
     } 
    }, 
    "analyzer": { 
     "autocomplete_edge_ngram": { 
      "filter": ["lowercase"], 
      "type": "custom", 
      "tokenizer": "autocomplete_tokenizer" 
     } 
    } 
    } 
} 

和映射將

{ 
    "title_edge_ngram": { 
     "type": "text", 
     "analyzer": "autocomplete_edge_ngram", 
     "search_analyzer": "standard" 
    } 

或者你可以在elasticsearch使用completion suggester。 對於三個字符檢查,你必須在你的客戶端自己做。