我有这个文件结构:
{
"_index": "catalogue",
"_type": "attribute",
"_id": "f26f19bb-5558-4e01-a021-d81cd895248d",
"_score": 1,
"_source": {
"id": "f26f19bb-5558-4e01-a021-d81cd895248d",
"tenantIds": [
"1",
"2"
]
}
}
我正在查询返回包含某些租户的所有文档。
我看起来像(在Sense插件中):
POST /catalogue/attribute/_search
{
"filter": {"terms": {
"tenantIds": [
"1"
]
}}
}
问题是当我尝试在 Elasticsearch Scala插件中实现时-对于eclipse,我遇到了问题,无法创建查询和过滤器,并且我找不到下降的指南。
我尝试并没有得到回应的是:
val tenantIdFilter = FilterBuilders.termFilter("tenantIds",tenantId.get+",all")
val totalQuery = IndexQuery[AttributeSearchItem]().withBuilder(QueryBuilders.filteredQuery(QueryBuilders.boolQuery(),tenantIdFilter))
val newProducts = this.search(totalQuery)
我得到空结果。我究竟做错了什么 ?
谢谢
最佳答案
如果要仅使用filter
使用过滤查询,则必须为此matchAll
的query
部分使用filteredQuery
。在您的示例中,您使用了一个空的boolQuery
,这就是为什么它不返回结果的原因。
您应该尝试这样的事情:
val totalQuery = IndexQuery[AttributeSearchItem]().withBuilder(QueryBuilders.filteredQuery(QueryBuilders.matchAllQuery(),tenantIdFilter))
关于scala - 在scala eclipse插件中构建查询/过滤器以进行 Elasticsearch ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23611501/