elasticsearch 使用附加引号形成弹性搜索查询
我试图通过Elasticsearch的查询字符串模拟Kibana的搜索查询。例如,在Kibana,我可以用引号进行如下搜索:
elasticsearch 使用附加引号形成弹性搜索查询,
elasticsearch,kibana,elastic-stack,
elasticsearch,Kibana,Elastic Stack,我试图通过Elasticsearch的查询字符串模拟Kibana的搜索查询。例如,在Kibana,我可以用引号进行如下搜索: "ABC" AND "CDE" 当我尝试创建此查询字符串时,它会抛出一个语法错误: { "query": { "query_string": { "fields": ["messages"] "query": ""
"ABC" AND "CDE"
当我尝试创建此查询字符串时,它会抛出一个语法错误:
{
"query": {
"query_string": {
"fields": ["messages"]
"query": ""ABC" AND "CDE"" (syntax error occurs here)
}
}
}
我知道我可以不用额外的引号来查询它,但我需要将用户的输入附加到查询字符串中,该字符串将包含这些额外的引号。如何形成此查询以便它可以接受引号?您可以在查询字段中转义引号
{
"query": {
"query_string": {
"fields": ["messages"],
"query": "\"ABC\" AND \"CDE\""
}
}
}
或者将查询值用三个引号括起来
{
"query": {
"query_string": {
"fields": ["messages"],
"query": """
"ABC" AND "CDE"
"""
}
}
}
(您的示例中字段和查询字段之间也缺少逗号)您可以在查询字段中转义引号
{
"query": {
"query_string": {
"fields": ["messages"],
"query": "\"ABC\" AND \"CDE\""
}
}
}
或者将查询值用三个引号括起来
{
"query": {
"query_string": {
"fields": ["messages"],
"query": """
"ABC" AND "CDE"
"""
}
}
}
(您的示例在字段和查询字段之间也缺少逗号)您应该能够转义引号:
GET index-2021.02.21/_search
{
"query": {
"bool": {
"must": [
{
"match_phrase": {
"message": "\\"ABC\\""
}
}
]
}
}
}
您应该能够避开以下引用:
GET index-2021.02.21/_search
{
"query": {
"bool": {
"must": [
{
"match_phrase": {
"message": "\\"ABC\\""
}
}
]
}
}
}
上面的查询在Kibana的控制台上工作,但在JS中却无法正常工作。这是我在js:{“query”:{“query_string”:{“fields”:[“messages”],“query”:“+”、“+”、“+”\n'+“ABC”和“CDE”+“\n'+”、“+”}}}}中的查询。点击次数与我在Kibana得到的oone不一样。我做错了什么?上面的查询在Kibana的控制台上工作,但在JS中却无法正常工作。这是我在js:{“query”:{“query_string”:{“fields”:[“messages”],“query”:“+”、“+”、“+”\n'+“ABC”和“CDE”+“\n'+”、“+”}}}}中的查询。点击次数与我在Kibana得到的oone不一样。我做错了什么?