elasticsearch elasticsearch中匹配查询是否区分大小写?,elasticsearch,elasticsearch" /> elasticsearch elasticsearch中匹配查询是否区分大小写?,elasticsearch,elasticsearch" />

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抱歉,我没有注意到答案:)那么,精确大小写的分析器是什么?