当前位置: 首页 > 面试题库 >

如何在Elasticsearch中实现区分大小写的搜索?

戚星腾
2023-03-14
问题内容

我在索引文档中有一个字段,需要区分大小写地进行搜索。我正在使用匹配查询来获取结果。我的数据文件的一个示例是:

{
"name" : "binoy",
"age" : 26,
"country": "India"
}

现在,当我给出以下查询时:

{
“query” : {
“match” : {
“name” : “Binoy"
}
}
}

它给了我“ binoy”和“
Binoy”的匹配。我希望搜索区分大小写。缺省情况下,elasticsearch似乎不区分大小写。如何在Elasticsearch中使搜索区分大小写?


问题答案:

在映射中,您可以将字段定义为not_analyzed。

curl -X PUT "http://localhost:9200/sample" -d '{
  "index": {
    "number_of_shards": 1,
    "number_of_replicas": 1
  }
}'

echo
curl -X PUT "http://localhost:9200/sample/data/_mapping" -d '{
  "data": {
    "properties": {
      "name": {
        "type": "string",
        "index": "not_analyzed"
      }
    }
  }
}'

现在,如果您可以进行普通索引和普通搜索,它就不会对其进行分析并确保其提供不区分大小写的搜索。



 类似资料:
  • 我在索引文档中有一个字段,需要以区分大小写的方式进行搜索。我正在使用匹配查询来获取结果。我的数据文档的一个示例是: 现在当我给出以下查询时: 它给了我一个“比诺伊”对“比诺伊”的匹配。我希望搜索区分大小写。似乎默认情况下,elasticsearch似乎与大小写无关。如何在ElasticSearch中使搜索区分大小写?

  • 问题内容: 我尝试在elasticsearch.yml文件中创建一个条目,以针对要点中提到的内容创建自定义分析器: https //gist.github.com/1403902 但我得到以下错误 我仍然不知道如何做到这一点。我已经在stackoverflow上搜索了相同的内容,并得到了类似的回复(如上述要点所述) 请给我一个例子,我可以测试。 问题答案: 由于配置文件在启动时是只读的,因此要使更

  • 本文向大家介绍在Mongo中区分大小写的搜索?,包括了在Mongo中区分大小写的搜索?的使用技巧和注意事项,需要的朋友参考一下 您可以在“ $regex”的帮助下限制MongoDB中不区分大小写的搜索。语法如下- 您可以使用其他正则表达式。语法如下- 为了理解这个概念,让我们用文档创建一个集合。使用文档创建集合的查询如下- 在method的帮助下显示集合中的所有文档。查询如下- 以下是输出- 如果

  • 问题内容: 我有一个Lucene索引,该索引当前区分大小写。我想添加的 选项 有不区分大小写作为后备的。这意味着与案例匹配的结果将获得更大的权重,并且将首先出现。例如,如果结果数限制为10,并且有10个匹配项符合我的情况,那就足够了。如果仅找到7个结果,则可以从不区分大小写的搜索中再添加3个结果。 我的案子实际上更复杂,因为我有不同重量的物品。理想情况下,匹配“错误”的表壳会增加一些重量。不用说,

  • 对于报告(0.1%的所有查询),我需要返回一个所有可能类别的列表,区分大小写! 考虑以下文件: 运行以下查询: 返回: 是否有方法返回区分大小写的类别(存储在文档中)?我对此查询结果中的感兴趣。 Elasticsearch论坛中的问题 谢谢,伊泰

  • 本文向大家介绍如何在Oracle中执行不区分大小写的搜索?,包括了如何在Oracle中执行不区分大小写的搜索?的使用技巧和注意事项,需要的朋友参考一下 问题: 您要在Oracle中执行不区分大小写的搜索。 解 处理案例问题的一种方法是使用内置的UPPER和LOWER函数。这些函数使您可以强制单个操作对字符串进行大小写转换 示例 在上面的示例中,将full_name1和full_name2首先转换为