0

我有这个文档结构:

{
        "_index": "catalogue",
        "_type": "attribute",
        "_id": "f26f19bb-5558-4e01-a021-d81cd895248d",
        "_score": 1,
        "_source": {
           "id": "f26f19bb-5558-4e01-a021-d81cd895248d",
           "tenantIds": [
              "1",
              "2"
           ]
        }
     }

我正在查询返回包含特定租户的所有文档。

我看起来像(In Sense 插件):

POST /catalogue/attribute/_search
{
"filter": {"terms": {
   "tenantIds": [
      "1"
   ]
}}
}

问题是当我尝试在弹性搜索 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)

我得到空的结果。我究竟做错了什么 ?

谢谢

4

1 回答 1

1

如果您想使用仅带有 a 的过滤查询filter,则必须使用 amatchAll作为 this 的query一部分filteredQuery。在您的示例中,您使用了一个空boolQuery的,这就是它不返回任何结果的原因。

你应该尝试这样的事情:

val totalQuery = IndexQuery[AttributeSearchItem]().withBuilder(QueryBuilders.filteredQuery(QueryBuilders.matchAllQuery(),tenantIdFilter))
于 2014-05-13T09:44:43.870 回答