排名ElasticSearch查询

时间:2019-08-16 17:13:06

标签: elasticsearch

我们想提供一个使用ElasticSearch的搜索前端,其工作方式如下:

如果用户输入N个字词,例如index.php然后对结果进行如下排序:

  1. 首选完全匹配文本字段X => AAA BBB CCC
  2. 接下来在字段X => document X=[AAA BBB CCC]
  3. 中的任何短语
  4. 在字段X => document X=[SOME SENTENCE CONTAINING AAA BBB CCC AND OTHER WORDS]
  5. 中的所有位置接下来的所有单词
  6. 在任何地方/所有单词旁边的下一个=> [SOME AAA WITH CCC AND BBB SOMEWHERE]
  7. 在字段X [I HAVE AAA AND BBB], [I ONLY HAVE BBB],...中的任何地方的次子字(AAA *)

基本上是“最佳匹配”方法,看起来很合逻辑。

有趣的是,标准搜索和分析器无法达到这种准确性。

如何以尽可能少的查询来尽可能快地做到这一点?

0 个答案:

没有答案