我从这里学了一个例子
索引的映射为
{
"mappings": {
"my_type": {
"properties": {
"full_text": {
"type": "string"
},
"exact_value": {
"type": "string",
"index": "not_analyzed"
}
}
}
}
}
索引的文档是
{
"full_text": "Quick Foxes!",
"exact_value": "Quick Foxes!"
}
在对“full_text”字段使用简单的匹配查询时,我注意到如下所示
{
"query": {
"match": {
"full_text": "quick"
}
}
}
我看到文件是匹配的。另外,如果我使用大写字母,也就是“quick”作为搜索词,它显示文档是匹配的。
为什么会这样?。默认情况下,标记器会将“full_text”字段中的文本拆分为“quick”、“foxes”。那么,匹配查询如何与文档匹配大小写值呢?
因为您还没有在索引映射中指定要将哪个分析器用于“full_text”字段,所以将使用默认分析器。默认值将是“标准分析器”。
引用自ElasticSearch文档:
使用带有标准令牌筛选器、小写令牌筛选器和停止令牌筛选器的标准令牌器构建标准类型的分析器。
在索引中执行查询之前,ElasticSearch将对查询值应用为字段配置的相同分析器。因为默认分析器在处理过程中使用小写标记筛选器,所以使用“Quick”或“Quick”或“Quick”将向您提供相同的查询,因为分析器将使用小写标记筛选器对它们进行小写,结果只为“Quick”。
如何使通配符不区分大小写? https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-wildcard-query.html
我试图在Elasticseach 7中实现部分的、区分大小写的匹配。 我正在使用设置创建索引: 以及映射: 以下查询将正确返回文档: 但当我将搜索词小写时,它不会返回文档: 如何配置Elasticsearch,使其与使用小写搜索词的名称字段值匹配?
问题内容: 我看过每一篇文章,发现可以执行精确匹配,不区分大小写的查询,但是在实现时,它们并不能满足我的要求。 在将此问题标记为重复之前,请阅读整篇文章。 给定一个用户名,我想查询我的Elasticsearch数据库以仅返回一个与该用户名完全匹配但不区分大小写的文档。 我尝试为属性指定分析器,并使用查询来实现此行为。虽然这解决了区分大小写的匹配问题,但在精确匹配时失败了。 我考虑使用规范化程序,但
问题内容: HTML是否区分大小写? 在一个示例中,我正在使用它说: 还是会有所不同(或根本没有)? 问题答案: 否,但是将HTML标记保持小写被认为是一种好习惯。
对于报告(0.1%的所有查询),我需要返回一个所有可能类别的列表,区分大小写! 考虑以下文件: 运行以下查询: 返回: 是否有方法返回区分大小写的类别(存储在文档中)?我对此查询结果中的感兴趣。 Elasticsearch论坛中的问题 谢谢,伊泰
问题内容: 我正在用查询查询我的elasticsearch索引。查询本身的结构与此类似 我希望能够确定所有这些查询中哪一个是与结果匹配的查询。是否有内置的elasticsearch方法允许这样做,还是我必须手动进行? 问题答案: 您可以使用命名查询,然后在结果中获得匹配的查询的名称。 然后,在结果中,您将获得一个数组,其中包含与文档匹配的查询的名称。