具有多个参数的 Scala Elasticsearch 查询
Scala Elasticsearch query with multiple parameters
我需要从 Elasticsearch table 中删除某些条目。我在文档中找不到任何提示。我也是 Elasticsearch 菜鸟。要删除的行将由其 type
和 owner_id
标识。是否可以使用多个参数调用 deleteByQuery
?或者有什么替代方法可以达到同样的效果?
我正在使用这个库:https://github.com/sksamuel/elastic4s
table 的样子:
| id | type | owner_id | cost |
|------------------------------|
| 1 | house | 1 | 10 |
| 2 | hut | 1 | 3 |
| 3 | house | 2 | 16 |
| 4 | house | 1 | 11 |
在代码中目前看起来像这样:
deleteByQuery(someIndex, matchQuery("type", "house"))
我需要这样的东西:
deleteByQuery(someIndex, matchQuery("type", "house"), matchQuery("owner_id", 1))
但这行不通,因为 deleteByQuery 只接受一个查询。
在此示例中,它应删除 ID 为 1 和 4 的条目。
以 JSON 和其余 API 格式进行解释,以使其更清楚。
索引示例文档
put myindex/_doc/1
{
"type" : "house",
"owner_id" :1
}
put myindex/_doc/2
{
"type" : "hut",
"owner_id" :1
}
put myindex/_doc/3
{
"type" : "house",
"owner_id" :2
}
put myindex/_doc/4
{
"type" : "house",
"owner_id" :1
}
使用布尔查询搜索
GET myindex/_search
{
"query": {
"bool": {
"must": [
{
"match": {
"type": "house"
}
}
],
"filter": [
{
"term": {
"owner_id": 1
}
}
]
}
}
}
及查询结果
"hits" : [
{
"_index" : "myindex",
"_type" : "_doc",
"_id" : "1",
"_score" : 0.35667494,
"_source" : {
"type" : "house",
"owner_id" : 1
}
},
{
"_index" : "myindex",
"_type" : "_doc",
"_id" : "4",
"_score" : 0.35667494,
"_source" : {
"type" : "house",
"owner_id" : 1
}
}
]
我需要从 Elasticsearch table 中删除某些条目。我在文档中找不到任何提示。我也是 Elasticsearch 菜鸟。要删除的行将由其 type
和 owner_id
标识。是否可以使用多个参数调用 deleteByQuery
?或者有什么替代方法可以达到同样的效果?
我正在使用这个库:https://github.com/sksamuel/elastic4s
table 的样子:
| id | type | owner_id | cost |
|------------------------------|
| 1 | house | 1 | 10 |
| 2 | hut | 1 | 3 |
| 3 | house | 2 | 16 |
| 4 | house | 1 | 11 |
在代码中目前看起来像这样:
deleteByQuery(someIndex, matchQuery("type", "house"))
我需要这样的东西:
deleteByQuery(someIndex, matchQuery("type", "house"), matchQuery("owner_id", 1))
但这行不通,因为 deleteByQuery 只接受一个查询。
在此示例中,它应删除 ID 为 1 和 4 的条目。
以 JSON 和其余 API 格式进行解释,以使其更清楚。
索引示例文档
put myindex/_doc/1
{
"type" : "house",
"owner_id" :1
}
put myindex/_doc/2
{
"type" : "hut",
"owner_id" :1
}
put myindex/_doc/3
{
"type" : "house",
"owner_id" :2
}
put myindex/_doc/4
{
"type" : "house",
"owner_id" :1
}
使用布尔查询搜索
GET myindex/_search
{
"query": {
"bool": {
"must": [
{
"match": {
"type": "house"
}
}
],
"filter": [
{
"term": {
"owner_id": 1
}
}
]
}
}
}
及查询结果
"hits" : [
{
"_index" : "myindex",
"_type" : "_doc",
"_id" : "1",
"_score" : 0.35667494,
"_source" : {
"type" : "house",
"owner_id" : 1
}
},
{
"_index" : "myindex",
"_type" : "_doc",
"_id" : "4",
"_score" : 0.35667494,
"_source" : {
"type" : "house",
"owner_id" : 1
}
}
]