我想在整个文档(例如"开发人员")上混合搜索,并在某个字段上搜索另一个术语(例如" 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和特定字段上使用两个术语进行搜索?
谢谢。
是的,您快到了,您需要将它们组合到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"
}
}
]
}
}
}
}
}