0

現在、ESからの検索提案にこのESクエリを使用しています(エッジnグラムを使用)

var terms = query.split(' '),
    baseTerms = terms.length === 1 ? '' : terms.slice(0, -1).join(' ') + ' ',
    lastTerm = terms[terms.length - 1].toLowerCase();

"query": {
      "simple_query_string": {
        "fields": ['title.autocomplete'], //title.basic
        "query": baseTerms + '(' + lastTerm + '|' + lastTerm + '*)',
        "default_operator": "and"
      }
    }

これは機能しますが、単一の単語に対してのみです。文字を入力すると、単語の候補が表示されますが、スペースで区切られた複数の単語の候補 (フレーズの候補) を取得しようとしています。フレーズの提案を得るために使用するより良い ES クエリはありますか?

4

1 に答える 1