形成带有额外引号的弹性搜索查询
Forming Elastic search query with extra quotation marks
我正在尝试通过 Elasticsearch 的查询字符串模仿 Kibana 的搜索查询。例如在 Kibana 我可以用引号这样搜索:
"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"
"""
}
}
}
(您的示例还缺少字段和查询字段之间的逗号)
您应该能够转义引号:
GET index-2021.02.21/_search
{
"query": {
"bool": {
"must": [
{
"match_phrase": {
"message": "\"ABC\""
}
}
]
}
}
}
我正在尝试通过 Elasticsearch 的查询字符串模仿 Kibana 的搜索查询。例如在 Kibana 我可以用引号这样搜索:
"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"
"""
}
}
}
(您的示例还缺少字段和查询字段之间的逗号)
您应该能够转义引号:
GET index-2021.02.21/_search
{
"query": {
"bool": {
"must": [
{
"match_phrase": {
"message": "\"ABC\""
}
}
]
}
}
}