elasticsearch - 多个单词的 Elasticsearch /lucene索引?

标签 elasticsearch lucene search-engine

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

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

为了将来针对同一关键字进行搜索,搜索引擎是否在索引表中为关键字car engine新建了条目?

最佳答案

是的,它会根据您的查询搜索单个术语并采用结果的交集或并集。当要搜索的文档被“索引”到elasticsearch中时,它会使用一种被称为“反向索引”的东西。
索引操作与搜索不同。因此,不,除非您(在您的应用程序中)告知用户搜索,否则它不会索引用户搜索。
elasticsearch的基本功能可以分为两部分:

  • 索引。您可以通过索引要搜索的所有文档来创建文档索引。这些文档可以是您的MySQL存储库,Logstash等中的任何文件,也可以由用户的搜索查询组成,这些查询将您的应用程序索引到相关内容中 flex index
  • 搜索。您可以使用一些关键字来搜索索引文档,这些关键字可以是用户生成的,也可以是应用程序生成的,也可以是混合使用的,并使用ElasticSearch查询(DSL)。如果找到结果(根据您的查询),那么elasticsearch返回相关记录。

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

    关于elasticsearch - 多个单词的 Elasticsearch /lucene索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43175989/

    相关文章:

    elasticsearch - Elasticsearch Docker容器在启动时挂起而没有错误

    bash - Bash正则表达式查找替换

    PHP Elastic Search 过滤查询字符串搜索

    java - 文档中的多个可字段导致 nullpointerException

    azure - 如何对搜索引擎隐藏 azure vm 技术 url?

    elasticsearch - 如何将预先存在的数据从 DynamoDB 添加到 Elasticsearch?

    java - 在 lucene 4.7.0 中找不到 standard.StandardAnalyzer

    Lucene - 读取存储的所有字段名称

    mysql - 向搜索引擎开放MySql数据库

    javascript - 为什么要使用额外的输入元素来创建内部网站搜索框(和)