2016-10-17 5 views
0

私のアプリケーションでオートコンプリートを実装しようとしています。 は、私は、次の書類を持っていると言う:Elasticsearchで異なる強調表示された単語を返す方法

"red smart phone" 
"super smart phone" 
"small bluetooth speaker" 

だから、ユーザーが「S」私は提案として返すために必要がある場合:

"smart" 
"small" 

は現在、私は、一致した単語を取得するためにElasticsearchで簡単なハイライトを使用したm個(スマート、スモール)。しかし、事は私が2倍 "スマート"に戻ることです。 ESを設定することは可能ですか?その上で

は、例えばまた、ESリターン次(N)ワード(複数可)を、聞かせすることが可能である:

"smart phone" 
"small bluetooth (speaker)" 

答えて

0

完了提案者は、あなたの必要性のためのソリューションであるように思わ: https://www.elastic.co/guide/en/elasticsearch/reference/current/search-suggesters-completion.html

フィールドに新しいプロパティを追加するには、ESマッピングを変更する必要があります。 アナライザーにも注意してください。

hth、

NicolasY。

+0

こんにちはNicolas、完了の問題は、私が明示的に入力と出力のテキストをインデックス作成中の推奨セクションで指定する必要があることです。しかし、ほぼ1 Mの文書では、これは不可能です。 – panipsilos

+0

これは、代わりにedgeNgramアナライザを使用することができますが、メモリ消費量が大きくなりすぎて(ディスクスペースも)生成される可能性があるため、設定には注意してください。このアナライザーでは、索引時に用語を分割する方法を決定する必要があるため、オートコンプリートがどのように使用されるかを知る必要があります。 https://www.elastic.co/guide/en/elasticsearch/reference/current/analysis-edgengram-tokenizer.html – NicolasY

+0

もちろん、ハイライト機能と一緒に使用しています。私の問題は、一致した単語の別個の値だけを取り戻す方法だと言ったように。 – panipsilos

関連する問題