很抱歉的混乱冠军。制作elasticsearch只返回第一个数据“应该”符合如发现
我试图建立一个查询,搜索或者游戏标题或唯一的ID,但只有一个唯一的ID搜索(发现)返回一个结果。
例如,下面是一个使用术语“传送门2”的搜索。 Portal 2将不匹配任何“ids.name”字段,因此它会在“名称”键中进行搜索并正确返回该游戏。
{
"index":"games",
"type":"game",
"body":{
"query":{
"bool":{
"should":[
{
"nested":{
"path":"ids",
"query":{
"term":{
"ids.name":{
"value":"Portal 2",
"boost":2
}
}
}
}
},
{
"match":{
"name":{
"query":"Portal 2"
}
}
}
]
}
}
}
}
这里是与不上ids.name精确匹配搜索词“门户-2-45218”同样的事情。 它匹配正确的第一个“应该”查询,但也返回从第二个查询找到的游戏。
{
"index":"games",
"type":"game",
"body":{
"query":{
"bool":{
"should":[
{
"nested":{
"path":"ids",
"query":{
"term":{
"ids.name":{
"value":"portal-2-45218",
"boost":2
}
}
}
}
},
{
"match":{
"name":{
"query":"portal-2-45218"
}
}
}
]
}
}
}
}
我怎么会去不知何故停止搜索,一旦从“ids.name”的发现完全匹配?
谢谢,看起来像选项2是最适合我的。 – Ben