scala - 在scala eclipse插件中构建查询/过滤器以进行 Elasticsearch

标签 scala playframework elasticsearch elasticsearch-plugin

我有这个文件结构:

{
        "_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使用过滤查询,则必须为此matchAllquery部分使用filteredQuery。在您的示例中,您使用了一个空的boolQuery,这就是为什么它不返回结果的原因。

您应该尝试这样的事情:

val totalQuery = IndexQuery[AttributeSearchItem]().withBuilder(QueryBuilders.filteredQuery(QueryBuilders.matchAllQuery(),tenantIdFilter))

关于scala - 在scala eclipse插件中构建查询/过滤器以进行 Elasticsearch ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23611501/

相关文章:

selenium-webdriver - 从集成测试中加载 javascript Assets (Play/Selenium)

ScalaTest runner + FunSuite + 标签 : can't get `-n` and `-l` to include/exclude tag?

scala - future - map 与平面图

java - Play Framework : Store connections after onStart?

elasticsearch - 从Kibana elasticsearch嵌入 map

pandas - 在具有空值但没有nan的elasticsearch中索引 Pandas 数据框

docker - 使用 Docker 镜像的神秘 Filebeat 7 X-Pack 问题

java - Assets 反向路由中的动态文件路径

scala - 如何在 I/O 端口中使用 chisel3.experimental.ChiselEnum?

json - Play Json API : Convert a JsArray to a JsResult[Seq[Element]]