多个词的弹性 search/lucene 索引?

Elastic search/lucene index on multiple words?

当我在 Elastic search/lucene 中搜索说 car engine(这是任何用户第一次搜索此关键字)时,搜索引擎是否在索引 [=20= 中搜索索引中的单个词] 先找交点再找。例如:- 假设引擎找到了 10 汽车的文件然后它会搜索引擎说它有 5 个文件。现在在 5 个文件(最少文件数)中,它将搜索汽车。已找到 2 个文档。

现在搜索引擎将根据以上结果对其进行排名。这是在高级别索引 table 中搜索多个词的方式吗?

对于相同关键字的未来搜索,搜索引擎是否在索引 table 中为关键字 car engine 创建新条目?

是的,它会根据您的查询搜索单个术语并获取结果的交集或并集。它使用它生成的称为 "inverted index" 的东西,当要搜索的文档 "indexed" 进入 elasticsearch 时。 索引操作不同于搜索。所以,不,除非您告诉它(在您的应用程序中),否则它不会索引用户搜索。 elasticsearch 的基本功能可以分为两部分:

  1. 索引。您可以通过索引所有要搜索的文档来创建文档索引。这些文档可以是您的 MySQL 商店或 Logstash 等中的任何内容,也可以由您的应用程序的用户搜索查询组成索引到相关的弹性 index.
  2. 正在搜索。您可以使用 ElasticSearch 查询 (DSL) 使用用户生成或应用程序生成或混合使用的一些关键字来搜索索引文档。如果找到结果(根据您的查询)然后 elasticsearch returns 相关记录。

我鼓励您阅读此文档,以便更好地了解弹性搜索文档的工作原理: https://www.elastic.co/blog/found-elasticsearch-from-the-bottom-up