为什么我会为这两种类型的查询获得不同的结果。第一个查询返回17个结果,而第二个查询返回300多条记录。
还尝试将第二个字符串的查询值设置为“A& B”,看到相同的结果差异。
GET
GET dev/data,legacyData/_search?q="A%26B"
POST
POST dev/data,legacyData/_search
{
"from": 0,
"size": 1000,
"query": {
"query_string": {
"query": "A&B"
}
}
}
答案 0 :(得分:1)
在GET q查询中使用双引号时,
它表示它是精确过滤器
GET dev/data,legacyData/_search?q="A%26B"
等效的POST查询是
POST dev/data,legacyData/_search
{
"from": 0,
"size": 1000,
"query": {
"query_string": {
"query": "\"A&B\""
}
}
}
请尝试以下
GET dev/data,legacyData/_search?q=A%26B
POST dev/data,legacyData/_search
{
"from": 0,
"size": 1000,
"query": {
"query_string": {
"query": "A&B"
}
}
}
你会得到相同的结果