当前位置: 首页 > 知识库问答 >
问题:

弹性搜索-search_analyzer vs index_analyzer

慕项明
2023-03-14

我在查看http://euphonious-intuition.com/2012/08/more-complex-mapping-in-elasticsearch/,它解释了ElasticSearch分析器。

我不理解关于有不同的搜索和索引分析器的部分。自定义映射的第二个示例如下所示:
->索引分析器是Edgengram
->搜索分析器是:

"full_name":{
    "filter":[
        "standard",
        "lowercase",
        "asciifolding"
    ],
    "type":"custom",
    "tokenizer":"standard"
}

请用一个例子说明不同的分析器在哪些地方是有用的。

共有1个答案

曹凯泽
2023-03-14

您通常在索引时间和查询时间都有类似的分析链。相似并不意味着完全相同,但通常您索引文档的方式反映了您查询它们的方式。

ngrams示例非常适合,因为这是为什么在索引和查询时使用不同分析器的主要原因之一。

对于部分匹配,您使用边缘ngram索引,这样“elasticsearch”就变成了(使用mingram 3和maxgram 20):

现在让我们查询创建的字段。如果我们查询术语“弹性”,就会有一个匹配项,我们得到预期的结果。我们基本上把上面所说的部分匹配变成了精确匹配,给出了我们索引的内容。也不需要对查询应用ngram。如果是,我们将查询以下所有术语:

“ela”、“elas”、“elast”、“elasti”和“elastic”

这会使查询方式变得更加复杂,并且会导致得到奇怪的结果。假设您在另一个文档的相同字段中索引术语“elapsed”。您将拥有以下ngram:

我建议您看一下analyze api,使用不同的分析器及其不同的结果。

 类似资料:
  • 我使用Elasticsearch允许用户输入要搜索的术语。例如,我要搜索以下属性'name': 如果使用以下代码搜索或,我希望返回此文档。 我尝试过做一个bool must和做多个术语,但它似乎只有在整个字符串都匹配的情况下才起作用。 所以我真正想做的是,这个词是否以任何顺序包含两个词。 有人能帮我走上正轨吗?我已经在这上面砸了一段时间了。

  • 当我执行ps-aef grep elasticsearch HeapDumpOnOutOfMemoryError时看到了这一点 501 373 47 1 0 2:29pm ttys004 0:04.14/usr/bin/Java-xms4g-xmx4g-xss256k-djava.awt.headless=true-xx:+useparnewgc-xx:+useparnewgc-xx:+usepa

  • 我从ElasticSearch得到以下错误。 我在Ubuntu上运行Elasticsearch 1.7.2。 我做错了什么?

  • 我有以下格式的弹性搜索文档 } } 我的要求是,当我搜索特定字符串(string.string)时,我只想获得该字符串的FileOffSet(string.FileOffSet)。我该怎么做? 谢谢

  • 很抱歉,但是ES的文档(http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/index.html)让我感到困惑。 多亏了术语表,我理解了数据库、表和行的术语,但我阅读了文档的大部分部分,但我找不到答案: 为什么需要在索引创建中添加和?我确实在这里查看了http://www.elasticsearch.org/g

  • 我尝试使用https://www.elastic.co/guide/en/elasticsearch/client/java-api/current/java-docs-get.html弹性搜索文档,从我刚刚创建的索引中获取文档 我的整个代码是: 给出集群的名称(如果在ElasticSearch.yml中更改)Java ElasticSearch没有配置的节点可用NoNodeAvailableEx

  • 我正在LDAP服务器上工作。它有弹性搜索。我必须用一些Javascript代码(JSON格式)发送查询。 这是我的查询: 我试图打印所有结果,其中“server”=“server\u name”(该字段是server:server\u name…)。我认为关于弹性搜索的文档太小了。我找到了一些文档,但都是一样的,对新用户没有帮助。这个例子太简单了。 此查询返回所有结果,包括任何筛选器。 Ps:这就

  • 我知道这里提到的弹性搜索和Lucene的区别。 Lucene和Elasticsearch有什么不同 弹性搜索除了可扩展性、容错性和分布性之外,两者的核心区别是什么。 弹性搜索提供了比Lucene更好的搜索功能吗?