【问题标题】:Elastic search/lucene index on multiple words?多个单词的弹性搜索/lucene索引?
【发布时间】:2017-08-27 19:25:52
【问题描述】:

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

现在搜索引擎将根据以上结果对其进行排名。这是如何在高级索引表中搜索多个单词吗?

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

【问题讨论】:

    标签: elasticsearch lucene search-engine


    【解决方案1】:

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

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

    我建议您阅读此文档,以更好地了解弹性搜索文档的方式: https://www.elastic.co/blog/found-elasticsearch-from-the-bottom-up

    【讨论】:

    • 感谢 Archit 提供了很好的链接。如链接When new documents are added (perhaps via an update), the index changes are first buffered in memory. Eventually, the index files in their entirety, are flushed to disk 中所述。弹性是否首先搜索内存索引,如果没有找到则转到保存在数据库中的索引?
    猜你喜欢
    • 1970-01-01
    • 2020-09-11
    • 2023-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-25
    • 1970-01-01
    相关资源
    最近更新 更多