当前位置: 首页 > 面试题库 >

需要同时使用$ select和$ filter实施elasticsearch查询

陈宏胜
2023-03-14
问题内容

我有一个 Odata 查询: /ecommerceadmin/ODataService.svc/search?$select=status
&$filter=id eq'test.com‘和名称eq’abc’

如何在elasticsearch中实现代码以相应地获取数据。应使用 SearchSourceBuilder 中的 哪种 方法?


问题答案:

您可以轻松地摆脱一个match和一个这样的term查询:

import org.elasticsearch.action.search.SearchResponse;
import org.elasticsearch.index.query.QueryBuilders.*;

BoolQueryBuilder query = QueryBuilders.boolQuery()
    .must(QueryBuilders.matchQuery("name", "abc"))       // 1.
    .filter(QueryBuilders.termQuery("id", "test.com"));  // 2.

SearchResponse response = client.prepareSearch("ecommerce_index")
        .setTypes("ecommerce_type")
        .setQuery(query)
        .setFetchSource(new String[]{"status"}, null)    // 3.
        .setFrom(0)
        .setSize(10)
        .execute()
        .actionGet();

在上面的代码中:

  1. 照顾name eq 'abc'$ filter
  2. 照顾id eq 'test.com'$ filter
  3. 照顾$select=status部分


 类似资料:
  • 最近,我看到了贝尔曼·福特的问题和一些事实如下: 我们知道bellman-ford算法在每个步骤中检查所有边,对于每个边,如果,d(v) 对于在具有顶点的图G中查找顶点的所有最短路径,此算法在

  • 问题内容: 我有一个ConcurrentHashMap,在其中执行以下操作: 我的问题是-是否有必要做多余的事情 检查同步块内部,以便其他线程不会初始化相同的哈希图值? 也许检查是必要的,但我做错了吗?我在做什么似乎有点可笑,但我认为这是必要的。 问题答案: *ConcurrentHashMap上的 *所有 操作都是线程安全的,但是线程安全的操作是不可组合的。您试图使原子操作成为一对操作:检查地图

  • 我正在编写一个代码片段,用于在Android Studio中的Sqlite DB中执行CRUD操作。我创建了一个listView来保存两个属性,即name和job,但应用程序在运行时会崩溃。上面写着: Sqlite异常:找不到这样的列(代码1)“name”。 我已经搜索了解决方案,但我检查的每一个解决方案都是失败的。我的DB浏览器显示包含该列的表。是否需要将SELECT FROM...Query添

  • 问题内容: 在Java中,您可以执行以下操作: 在Kotlin中可以做同样的事情吗?假设是抽象的并且没有实现 问题答案: 接口实现和类继承之间在语法上没有区别。只需列出冒号后用逗号分隔的所有类型,如下所示: 禁止多个类继承,而单个类可以实现多个接口。

  • 我在努力实现这个目标: 通过bool查询筛选出结果,如“status=1” 通过布尔范围查询筛选出结果,如“discance:gte 10和lte 60” 通过从int数组中匹配至少一个int值筛选出结果 在多个字段中搜索单词,并计算文档得分。有些字段需要通配符,有些字段需要增强,如ImportantField^2、SomeField*、SomeOtherField^0.75 以上所有点都由AND

  • Unobtrusive script to filter in a multiple select box. Concept found in Django Admin filter list : http://simonwillison.net/static/2008/xtech/ (slide 18)