我想在整个文档中混合搜索(例如"开发人员")以及在某个字段上搜索另一个字段(例如" php")。 我可以单独进行每次搜索,但我无法混合它们。
这是我的例子(简化为仅显示我的问题):
{
"query": {
"function_score": {
"query": {
"match": {
"_all": "developer"
},
"multi_match": {
"query": "php",
"fields": [
"skills.description",
"skills.description",
"skills.details"
],
"operator": "or",
"type": "most_fields"
}
}
}
}
如果我运行此示例,则会出现错误:
Parse Failure [Failed to parse source
有没有办法用两个术语搜索_all和特定字段?
感谢。
答案 0 :(得分:1)
是的,您几乎就在那里,您需要将它们合并到一个bool/must
查询中:
{
"query": {
"function_score": {
"query": {
"bool": {
"must": [
{
"match": {
"_all": "developer"
}
},
{
"multi_match": {
"query": "php",
"fields": [
"skills.description",
"skills.description",
"skills.details"
],
"operator": "or",
"type": "most_fields"
}
}
]
}
}
}
}
}