ElasticSearch 的查询字符串语法中的单引号和双引号有什么区别?
What is the difference between single and double quotes in ElasticSearch's query string syntax?
ElasticSearch 的查询字符串语法中的单引号和双引号有什么区别?以防万一我用错了术语,在引用查询字符串语法时,我指的是发现选项卡上 kibana 的搜索字段使用的语法。
我有一个索引,其字段 python_type
是一个未分析的字符串。
1) python_type: typeA
找到预期的文档
2) python_type: "typeA"
也找到了预期的文档
3) python_type: 'typeA'
什么也没找到。
为什么第三个查询字符串return没有结果?查询字符串如何解释单引号?有趣的是,当分析该字段时,所有三个查询字符串 return 都是预期的结果。
谢谢,
内森
Kibana 输入字段不需要 JSON 数据,但您在输入字段中键入的内容必须遵循 query_string
query syntax.
如您在该文档中所见,任何地方都没有单引号,即它不是查询语法的保留字符。
当查询 python_type:'typeA'
时,Kibana 发送给 ES 的 query_string
查询将如下所示:
{
"query": {
"filtered": {
"query": {
"query_string": {
"query": "python_type:'typeA'",
"analyze_wildcard": true
}
}
}
}
}
没有错,但 ES 会检查 python_field
包含 'typeA'
的文档,并带有单引号。
而在查询 python_type:"typeA"
或 python_type:typeA
时,ES 将检查具有 python_field
且确切术语为 typeA
的文档
ElasticSearch 的查询字符串语法中的单引号和双引号有什么区别?以防万一我用错了术语,在引用查询字符串语法时,我指的是发现选项卡上 kibana 的搜索字段使用的语法。
我有一个索引,其字段 python_type
是一个未分析的字符串。
1) python_type: typeA
找到预期的文档
2) python_type: "typeA"
也找到了预期的文档
3) python_type: 'typeA'
什么也没找到。
为什么第三个查询字符串return没有结果?查询字符串如何解释单引号?有趣的是,当分析该字段时,所有三个查询字符串 return 都是预期的结果。
谢谢,
内森
Kibana 输入字段不需要 JSON 数据,但您在输入字段中键入的内容必须遵循 query_string
query syntax.
如您在该文档中所见,任何地方都没有单引号,即它不是查询语法的保留字符。
当查询 python_type:'typeA'
时,Kibana 发送给 ES 的 query_string
查询将如下所示:
{
"query": {
"filtered": {
"query": {
"query_string": {
"query": "python_type:'typeA'",
"analyze_wildcard": true
}
}
}
}
}
没有错,但 ES 会检查 python_field
包含 'typeA'
的文档,并带有单引号。
而在查询 python_type:"typeA"
或 python_type:typeA
时,ES 将检查具有 python_field
且确切术语为 typeA