2

私は、各検索テキストを弾性検索のドキュメントとして索引付けすることにより、ユーザーの検索履歴を維持する予定です。プレフィックスクエリを使用してユーザーのための提案のリストを取得することを考えました。プレフィックスクエリと一緒にMultimatchクエリを使用して、テキストの中央に一致する用語を取得しました。Elasitc検索を使用すると、パフォーマンスに関してプレフィックスクエリをどのように使いますか?

疑似クエリは以下のようになります。私はそれがsugestionsのプレフィックスクエリを使用しているどのように良い知っていただきたいと思いますその前に

{ 
"query" : { 
    bool : { 
      should : { 
        "Prefix query"{ 
         } 
        "multimatch query"{ 
        } 
      } 
    } 
} 

}

私は毎日のインデックスを維持しており、過去30日間の履歴を照会したいと考えています。

パフォーマンスに問題はありますか?私はそれを実装する前にこれをクリアしたいと思います。この種のシナリオではプレフィックスクエリのための代替手段はありますか?

は、私はすでに完了提案者 と提案を実装しましたが、私の要件は、歴史上と同様にテキストの途中で条件に一致するの支援を受けて基づいた提案をユーザに提供することです。

答えて

0

通常、Elasticsearchは検索に優れています。複雑なネストされた集約クエリでは時間がかかる可能性がありますが、単純な検索は非常に高速です。私はあまり前もって心配する必要はないと思う。

1

以前のプロジェクトでは、このような演算子に大きく依存するクエリ言語を使用しました。star | 部分の部分 | Luceneは標準的なLuceneの実装では主な星が重いので、Luceneはゆっくりと動作する可能性があります(基本的にLuceneの実装では重いため、また、禁止されています)。すべてはMultiMatchQueryなしで実装されました。

一つは、接尾辞配列(https://en.wikipedia.org/wiki/Suffix_array)のような実装の改善は、だから、(少なくとも、それが私たちを助けた)

を助けるという結論、注意してください、そして、あなたのインデックスが(それは歴史の唯一の30日なので)場合になることを、想像できますあなたはうまくいくはずです。

+0

これは本当に私を立ち上げるでしょう。経験をありがとう –

関連する問題