`
weitao1026
  • 浏览: 1062470 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

SearchRequestBuilder常用方法说明

 
阅读更多

SearchRequestBuilder常用方法说明

(1) setIndices(String... indices):上文中描述过,参数可为一个或多个字符串,表示要进行检索的index;

(2) setTypes(String... types):参数可为一个或多个字符串,表示要进行检索的type,当参数为0个或者不调用此方法时,表示查询所有的type

setSearchType(SearchType searchType):执行检索的类别,值为org.elasticsearch.action.search.SearchType的元素,SearchType是一个枚举类型的类,
   其值如下所示:
   QUERY_THEN_FETCH:查询是针对所有的块执行的,但返回的是足够的信息,而不是文档内容(Document)。结果会被排序和分级,基于此,只有相关的块的文档对象会被返回。由于被取到的仅仅是这些,故而返回的hit的大小正好等于指定的size。这对于有许多块的index来说是很便利的(返回结果不会有重复的,因为块被分组了)
   QUERY_AND_FETCH:最原始(也可能是最快的)实现就是简单的在所有相关的shard上执行检索并返回结果。每个shard返回一定尺寸的结果。由于每个shard已经返回了一定尺寸的hit,这种类型实际上是返回多个shard的一定尺寸的结果给调用者。
   DFS_QUERY_THEN_FETCH:与QUERY_THEN_FETCH相同,预期一个初始的散射相伴用来为更准确的score计算分配了的term频率。
   DFS_QUERY_AND_FETCH:与QUERY_AND_FETCH相同,预期一个初始的散射相伴用来为更准确的score计算分配了的term频率。
   SCAN:在执行了没有进行任何排序的检索时执行浏览。此时将会自动的开始滚动结果集。
   COUNT:只计算结果的数量,也会执行facet。

(4) setSearchType(String searchType),与setSearchType(SearchType searchType)类似,区别在于其值为字符串型的SearchType,值可为dfs_query_then_fetch、dfsQueryThenFetch、dfs_query_and_fetch、dfsQueryAndFetch、query_then_fetch、queryThenFetch、query_and_fetch或queryAndFetch;

(5) setScroll(Scroll scroll)、setScroll(TimeValue keepAlive)和setScroll(String keepAlive),设置滚动,参数为Scroll时,直接用new Scroll(TimeValue)构造一个Scroll,为TimeValue或String时需要将TimeValue和String转化为Scroll;

(6) setTimeout(TimeValue timeout)和setTimeout(String timeout),设置搜索的超时时间;

(7) setQuery,设置查询使用的Query;

(8) setFilter,设置过滤器;

(9) setMinScore,设置Score的最小数量;

(10) setFrom,从哪一个Score开始查;

(11) setSize,需要查询出多少条结果;

分享到:
评论

相关推荐

    elasticsearch-java中文文档 -5.6.3版本

    SearchRequestBuilder searchRequestBuilder = client.prepareSearch(indexName); searchRequestBuilder.setQuery(QueryBuilders.matchQuery("field", "value")); SearchResponse response = searchRequestBuilder....

    elasticsearch5.5.2实现搜索结果高亮显示和搜索建议

    最后,在`prepareSearch`方法中添加了高亮配置,并执行搜索请求。 ### 搜索建议 搜索建议功能可以为用户提供自动补全或基于输入的建议,提高用户体验。Elasticsearch支持多种类型的建议,如`completion suggester`...

    elasticsearch java api

    例如,可以使用`SearchRequestBuilder`构建查询,然后调用`execute()`方法执行。 5. **Junit测试**:描述中提到的例子都经过了Junit测试,这意味着每个功能都经过了验证,确保其正确性和稳定性。在Java项目中,使用...

    关于elasticsearch5.3.0基础增删改查实例文件

    1. 创建 `SearchRequestBuilder` 对象。 2. 调用 `setQuery()` 设置查询条件,如 `termQuery()` 或 `matchQuery()`。 3. 使用 `execute()` 获取 `SearchResponse`,从中获取结果。 示例代码: ```java ...

    Elastic Search学习笔记

    其中,过滤查询是一种非常实用的方法,因为它能够快速地缩小搜索范围,提高查询效率。 #### 三、前置过滤查询 前置过滤是 Elasticsearch 中的一种特殊过滤类型,它主要用于匹配字符串前缀。这种方式非常适合用于...

    Elasticsearch的javaapi使用.docx

    查询文档可以通过构建一个`SearchRequestBuilder`并执行它来实现: ```java SearchResponse searchResponse = client.prepareSearch("my_index") .setQuery(QueryBuilders.matchQuery("content", "文章")) ....

    Elasticsearch实现复合查询高亮结果功能

    最后,我们将查询条件和高亮设置合并到`SearchRequestBuilder`中,并执行搜索请求: ```java SearchRequestBuilder requestBuilder = client.prepareSearch("indexname") .setTypes("indextype") // 指定索引类型 ...

    Java如何使用elasticsearch进行模糊查询

    SearchRequestBuilder requestBuilder = client.prepareSearch("knowledge").setTypes("knowledge_theme"); BoolQueryBuilder qbs = QueryBuilders.boolQuery(); QueryBuilder qb1 = QueryBuilders.matchPhraseQuery...

Global site tag (gtag.js) - Google Analytics