1
我有以下指标:多发性QUERY_STRINGS(嵌套而不是嵌套)
{
"thread":{
"properties":{
"members":{
"type":"nested",
"properties":{
"memberId":{
"type":"keyword"
},
"firstName":{
"type":"keyword",
"copy_to":[
"members.fullName"
]
},
"fullName":{
"type":"text"
},
"lastName":{
"type":"keyword",
"copy_to":[
"members.fullName"
]
}
}
},
"name":{
"type":"text"
}
}
}
}
我想实现一个搜索,即查找所有线程,要么匹配成员名称或线程的名字,只要作为用户ID匹配。
我当前的查询看起来是这样的:
{
"query": {
"bool": {
"must": [
{
"nested": {
"path": "members",
"score_mode": "none",
"query": {
"bool": {
"filter": [
{ "match": { "members.id": "123456789" } }
]
}
}
}
},
{
"nested": {
"path": "members",
"query": {
"bool": {
"must": {
"simple_query_string": {
"query": "Rhymen",
"fields": ["members.fullName"]
}
}
}
}
}
}
]
}
}
}
我可以过滤成员和线程的名字在一个查询或者我必须合并两个单独的查询?我试着用“minimum_should_match:1”添加一个“should”,这样我就可以添加第二个没有嵌套的“query_string”。但是这并没有像预期的那样工作(分数非常糟糕)。