elasticsearch - Elasticsearch:多个关键字不搜索所有字段
问题描述
我是 elasticsearch 新手,在使用多个关键字搜索所有字段时遇到问题。例如,如果我在所有字段中搜索该术语:foo
我会返回所有结果。
但是,如果我搜索所有字段,foo bar
那么当我知道 foo 和 bar 在 1 个字段中且 bar 在另一个字段中时,它只会返回一个字段中包含 foo 和 bar 的结果。
如果我搜索所有字段,foo "bar"
它将正常工作并返回所有字段的所有结果,但真的不想尝试向用户解释第二个术语的用户报价。
知道我哪里出错了吗?
询问:
{
"query": {
"bool": {
"must": {
"query_string": {
"fields": ["heading, title, content, call_number"],
"query": "foo bar",
"default_operator": "AND"
}
}
}
}
}
解决方案
您正在寻找的是combined_fields
搜索查询
combine_fields 查询支持搜索多个文本字段,就好像它们的内容已被索引到一个组合字段中一样。阅读更多
{
"query": {
"combined_fields": {
"query": "foo bar",
"fields": [
"heading",
"title",
"content",
"call_number"
],
"operator": "and"
}
}
}
推荐阅读
- knockout.js - 使用 KnockoutJS 从多个选择列表中获取值
- sql - OraOLEDB ORA-01840: 输入值对于日期格式不够长
- visual-studio - 与 Visual Studio 2019 并排安装 Visual Studio 2019 预览版是否安全(Blazor 想要预览版)?
- c# - 为什么 Visual Studio 告诉我我运行的 C# 版本与我在 WCF 服务项目中所针对的版本不同?
- twilio - 如何在 Twilio Flow 中处理持久的 Microsoft 认知服务文本转语音呼叫
- pandas - 如何更改熊猫数据框中单个单元格的格式?
- azure - Azure 函数应用部署和发布管道错误
- java - GLSL 深度测试信息
- r - R从匹配正则表达式模式的数据框中删除列
- ruby-on-rails - 为什么mongodb没有返回数据?