我的DSL查询在下面
GET index_name/_search
{
"query" : {
"query_string" : {
"query" : "*avi*",
"fields" : [
"data.name"
]
}}}
我还需要添加"query" : "*ojh*"
。
以下查询无效
GET index_name/_search
{
"query" : {
"query_string" : {
"query" : "*avi*",
"query" : "*ojh*",
"fields" : [
"data.name"
]
}}}
答案 0 :(得分:1)
您需要利用bool/should
查询并添加两个query_string
查询:
{
"query": {
"bool": {
"should": [
{
"query_string": {
"query": "*avi*",
"fields": [
"data.name"
]
}
},
{
"query_string": {
"query": "*ojh*",
"fields": [
"data.name"
]
}
}
]
}
}
}
不过,请注意,像这样进行中缀搜索可能会破坏群集的性能。有关如何正确执行“子字符串”搜索的信息,请参见this thread。