SearchRequestBuilder常用方法说明

SearchRequestBuilder常用方法说明

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

(2) setTypes(String... types):参数可为一个或多个字符串,表示要进行检索的type,当参数为0个或者不调用此方法时,表示查询所有的typesetSearchType(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,需要查询出多少条结果;

转载于:https://www.cnblogs.com/luweiwei/p/5968514.html

### 回答1: SearchRequestBuilder是Elasticsearch Java API中的一个类,用于构建搜索请求。它可以设置搜索的索引、类型、查询条件、排序方式、分页等参数,并返回一个SearchRequest对象,用于执行搜索操作。 ### 回答2: SearchRequestBuilder是Elasticsearch Java API中用于构建搜索请求的一个类。它是Elasticsearch Java客户端中的一个API工具,用于构建请求并向Elasticsearch发送搜索请求。 SearchRequestBuilder可以设置搜索请求的各种参数,如搜索查询、索引范围、文档类型、排序方式、过滤器等。它具有良好的可读性和可维护性,易于扩展和定制。 使用SearchRequestBuilder,用户可以轻松地构建和执行基于查询的搜索请求,并获取与搜索查询匹配的文档列表。例如,可以使用它在Elasticsearch中查找特定字段中包含特定词汇的文档或者是查找一段时间范围内的数据。 SearchRequestBuilder中的一些主要方法包括: 1. setQuery(QueryBuilder query):设置查询内容。 2. setIndices(String... indices):设置搜索的索引范围。 3. setTypes(String... types):设置搜索的文档类型范围。 4. addSort(SortBuilder sort):设置排序方式。 5. setPostFilter(FilterBuilder postFilter):设置搜索结果的过滤器。 6. setFrom(int from)和setSize(int size):设置搜索结果的起始位置和数量。 总之,SearchRequestBuilder是一个方便的工具类,可以帮助Java开发人员轻松构建搜索请求,并从Elasticsearch中获取所需的结果集。它是Elasticsearch Java API中的一个重要组件,对于Elasticsearch搜索数据非常有用。 ### 回答3: searchrequestbuilder是Elasticsearch Java客户端API中的一个关键类,用于构建Elasticsearch搜索请求。它提供了一种流畅的Java API,可以轻松地构建各种类型的搜索请求。 该类的主要功能是将搜索请求的各种参数转换为JSON格式的请求体,并将其发送到Elasticsearch服务器。它允许用户指定搜索条件、文档类型、索引名称和分页信息等。searchrequestbuilder也提供了很多查询选项,例如加权搜索、模糊搜索和范围搜索。 searchrequestbuilder有多种方法用于设置不同的搜索条件,例如setQuery()用于设置查询条件、setSize()用于设置返回结果的数量、setFrom()用于设置起始的结果偏移量、addSort()用于设置排序条件等。此外,还提供了一些其他方法,例如setIndices()用于指定要搜索的索引名称,setTypes()用于指定要搜索的文档类型等。 使用searchrequestbuilder可以轻松地构建各种类型的搜索请求,例如针对特定字段的精确匹配搜索、模糊搜索、复合查询、嵌套查询等。此外,通过设置一些高级参数,例如进行聚合分析、设置搜索超时时间、控制搜索是否进行缓存等,可以更好地控制搜索结果。 总之,searchrequestbuilder是Elasticsearch Java客户端API中一个非常重要的类,在Elasticsearch的Java编程中有很大的作用,它可以用来构建多种类型的搜索请求,并提供了各种灵活的设置选项,使得用户可以有效地控制搜索过程和搜索结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值