2017-09-15 5 views
0

タイプを示唆するElasticSearchを選択してください。ElasticSearchは、フレーズの途中から示唆しています

私はElasticSearchインデックスを持っています。「JSC Some company」、「JSC Another company」などのような名前の企業が多数あります。ユーザーがタイプを好むので

完了提案者は動作しません:「...いくつかのコ」が、提案者は、ユーザーがで始まる場合にのみ機能します「JSCいくつかのコ...」

を迅速に作成する方法はありますユーザーの入力中に検索しますか?

curl -XPUT 'localhost:9200/tass_suggest_test/_mapping/company?pretty' -H 'Content-Type: application/json' -d' 
{ 
    "company": { 
      "properties": { 
       "id": { 
        "type": "integer" 
       }, 
       "inn": { 
        "type": "keyword" 
       }, 
       "innSuggest" : { 
        "type" : "completion", 
        "analyzer": "whitespace" 
       } 
      } 
     } 
} 
' 

curl -XGET 'localhost:9200/tass_suggest_test/_suggest?pretty' -H 'Content-Type: application/json' -d' 
{ 
    "company-suggest" : { 
     "prefix" : "78200", 
     "completion" : { 
      "field" : "innSuggest" 
     } 
    } 
} 
' 

答えて

0

あなたは次のようにnグラムのフィルタを使用して試すことができます:

は、私は私のマッピング例を追加し、よりクリアな疑問を得るために、クエリの例を提案したいです。

"filter": { 
    "suggest_filter": { 
     "type" : "ngram", 
     "min_gram": 2, 
     "max_gram": 7 
    } 
}, 
"analyzer": { 
    "suggest_analyzer": { 
     "type": "custom", 
     "tokenizer": "whitespace", 
     "filter": ["lowercase", "suggest_filter"] 
    } 
} 
+0

ありがとうございますが、私はそれが私が探しているものではないと思います。私は私のインデックスフィールドwirhタイプ "完了"で自分のタイプで持っています。検索エンジンからリアルタイムに近い答えを得るために、 "_query"ではなく "_suggest"を使用したいので、私は補完型を使用します。 「完了」フィールドでこのフィルタとアナライザを使用する方法を教えてください。 –

関連する問題