elasticsearch - 字符串数组的 ElasticSearch multi_match 查询
问题描述
我需要从 ElasticSearch 中查询 3000 条数据,目前我正在使用 multi_match 进行查询。有没有办法使用字符串数组进行匹配?Term 不可用,因为它只查询字符串的确切值。
下面是一个理想请求的示例:
{
"size": 1,
"_source": ["_id"],
"query": {
"multi_match": {
"query": ["val1", "val2"],
"fields": [
"name",
"url"
]
}
}
}
编辑:
另一个用例是搜索学校:
{
"size": 1,
"_source": ["_id"],
"query": {
"multi_match": {
"query": ["school name 1", "school name 2"],
"fields": [
"name"
]
}
}
}
将每个值的空格视为整个学校名称。
解决方案
multi_match
不接受值数组,但没有什么能阻止您发送包含值的字符串。查询字符串将被分析为两个标记val1
,val2
并且每个标记都将在每个字段上单独匹配。
{
"size": 1,
"_source": ["_id"],
"query": {
"multi_match": {
"query": "val1 val2",
"fields": [
"name",
"url"
]
}
}
}
推荐阅读
- git - 运行“git log”会导致错误提示“less: -c: line 0: unexpected EOF while looking for matching `'”
- jquery - 如何在应用程序中检查 gijgo/datepicker 的版本?
- php - Laravel 8 Passport - 多重身份验证设置
- node.js - 如何在 NodeJS 异步缓冲区中制作
- spring-boot - Spring Cache,缓存新数据时如何删除另一个缓存数据?
- vue.js - 使用正确的 CSS 样式将 VUE.JS 组件转换为 Web 应用程序
- c++ - 抛出异常您的项目已触发断点
- javascript - 刷新页面时如何阻止复选框被取消选中?
- reactjs - Webpack HRM typescript 重新编译问题
- python - 如何使用来自 df.itertuples() 的 Namedtuple Pandas 启用 row[col_name] 语法