gpt4 book ai didi

Elasticsearch - 查询中 "and"和 "ampersand"(&) 的相同搜索结果

转载 作者:行者123 更新时间:2023-12-02 22:48:21 25 4
gpt4 key购买 nike

在Elasticsearch中设计一个索引,使查询中的“&”和“and”返回相同的结果

无论搜索是使用“and”作为查询字符串还是符号“&”,我们如何才能使 Elasticsearch 返回相同的结果。

例如,有一个查询要查找名称中包含“and/&”的所有电影片名。

  1. 先生& 史密斯夫人
  2. jack 和吉尔
  3. Abc 和 Def & ghi
  4. 虚拟名称

因此在这种情况下,查询中使用“and”或“&”进行搜索应该返回 1,2,3 并不重要。

从我的 Kibana 开发工具转储

PUT 测试索引{ “设置”:{“number_of_replicas”:0, “number_of_shards”:1 }, “映射”:{ “医生”: { “特性”: { “电影名称”:{“类型”:“文本”} } } }

PUT/test_index/doc/1{ "movie_name":"史密斯夫妇"

PUT/test_index/doc/2{ "movie_name":" jack 和吉尔"

PUT/test_index/doc/3{ "movie_name":"Abc 和 Def & ghi"

PUT/test_index/doc/4{ "movie_name":"虚拟名称"

下面的两个查询应该返回相同的结果

  1. 获取 test_index/_search{“尺寸”:20,“询问”: {“匹配”: { “电影名称”:“&”}}

  2. 获取 test_index/_search{“尺寸”:20,“询问”: {“匹配”: { “电影名称”:“和”}}

最佳答案

有几种方法可以做到这一点

  1. 使用 english 分析器,它会从您的文本中删除特殊字符以及停用词,例如“and”,因此本质上您的搜索将与没有 &/的标记匹配因此将是相同的。参见 https://www.elastic.co/guide/en/elasticsearch/reference/6.4/analysis-lang-analyzer.html求助文档

  2. 保留您的标准分析器并添加一个字符替换过滤器,以用“和”替换任何出现的“&”模式,然后所有这些搜索将发出相同的标记。参见 https://www.elastic.co/guide/en/elasticsearch/reference/current/analysis-pattern-replace-charfilter.html求助文档

关于Elasticsearch - 查询中 "and"和 "ampersand"(&) 的相同搜索结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53111937/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com