elasticsearch elasticsearch中匹配查询是否区分大小写?
我遵循了一个来自美国的例子 索引的映射是
elasticsearch elasticsearch中匹配查询是否区分大小写?,
elasticsearch,
elasticsearch,我遵循了一个来自美国的例子 索引的映射是 { "mappings": { "my_type": { "properties": { "full_text": { "type": "string" }, "exact_value": { "type": "string", "index": "not_analyzed" } }
{
"mappings": {
"my_type": {
"properties": {
"full_text": {
"type": "string"
},
"exact_value": {
"type": "string",
"index": "not_analyzed"
}
}
}
}
}
并且该文档已被索引
{
"full_text": "Quick Foxes!",
"exact_value": "Quick Foxes!"
}
我注意到在“全文”字段上使用简单的匹配查询时,如下所示
{
"query": {
"match": {
"full_text": "quick"
}
}
}
我可以看到文件是匹配的。另外,如果我使用大写字母,即“QUICK”,作为搜索词,它会显示文档是匹配的
为什么会这样?。默认情况下,标记器会将“全文”字段中的文本拆分为“快速”、“狐狸”。那么,“匹配查询”如何匹配文档中的大写值呢?因为您还没有指定将哪个分析器用于索引映射中的“全文”字段,所以使用默认分析器。默认值为“” 引用ElasticSearch文档: 使用带有标准令牌过滤器、小写令牌过滤器和停止令牌过滤器的标准令牌发生器构建standard类型的分析器
在索引中执行查询之前,ElasticSearch将对查询值应用为字段配置的相同分析器。由于默认分析器在处理过程中使用了小写标记过滤器,因此使用“Quick”或“Quick”或“Quick”将为您提供相同的查询,因为分析器将通过使用小写标记过滤器对其进行小写,结果仅为“Quick”。我不理解您的问题。你的意思是当“quick”或“quick”时,你会得到相同的文档吗?是的。当使用“match”查询时,两个词都找到了匹配项。但是当使用“term”查询时,大写的词找不到匹配项,这很容易理解,因为在term查询中,我们在分析的术语中查找。查询字符串“quick”是否转换为“quick”“在使用匹配查询时?我回答了您下面的问题。如果您感到满意,请将其视为回答;-)@CodeNotFound抱歉,我没有注意到答案:)那么,精确大小写的分析器是什么?