java - 在这种情况下,如何在 elasticsearch 7.x 中使用术语查询
问题描述
弹性搜索版本是 7.x
这里有一些嵌套数据打击:
data1:
[{name:"tom"},{name:"jack"}]
data2:
[{name:"tom"},{name:"rose"}]
data3:
[{name:"tom"},{name:"rose3"}]
...
dataN:
[{name:"tom"},{name:"roseN"}]
当我使用术语查询时,我只想搜索 tom, jack, 但不想包括 rose...roseN
query:{
terms:{["tom","jack"]}
}
this code is not effective
解决方案
添加一个工作示例
指数数据:
PUT /_doc/1
{
"names": [
{
"name": "tom"
},
{
"name": "jack"
}
]
}
PUT /_doc/2
{
"names": [
{
"name": "tom"
},
{
"name": "rose"
}
]
}
搜索查询:
{
"query": {
"bool": {
"must": {
"terms": {
"names.name": [
"tom",
"jack"
]
}
},
"must_not": {
"match": {
"names.name": "rose"
}
}
}
}
}
搜索结果:
"hits": [
{
"_index": "65838516",
"_type": "_doc",
"_id": "1",
"_score": 1.0,
"_source": {
"names": [
{
"name": "tom"
},
{
"name": "jack"
}
]
}
}
]
推荐阅读
- machine-learning - 有些人如何在 Pytorch 中有效地将树神经网络转换为 Dag 神经网络,并且没有后向传递错误?
- file - “复制”会犯什么样的错误?
- c# - 无缘无故退出账户
- c - 缓存模拟
- winforms - 如何将打印页面(Winform)置于前面?
- java - 在 aws 上部署 Spring 启动应用程序时无法创建类型为 org.springframework.orm.jpa.SharedEntityManagerCreator 的内部 bean
- python - Django 验证错误在基于类的视图中不起作用
- php - 考勤一次的学生按考勤键后不能再考勤
- python - 表时间转换纳秒到分钟
- python - 使用 Python [已解决] 从 json 文件中删除枚举器