elasticsearch 深入 —— Search Type检索类型 在此我们再给出那个查询的代码: $ curl -XGET localhost:9200/startswith/test/_search?pretty -d '{ "query": { "match_phrase_prefix": { "title": { "query": "d", "max_expansions": 5 } } } }' | grep title "_score" : 1.0, "_source" ...
如果我们使用这个新的搜索类型,那么获得的结果更加合理了(这些都一样的): $ curl -XGET'localhost:9200/startswith/test/_search?pretty=true&search_type=dfs_query_then_fetch'-d'{ "query": { "match_phrase_prefix": { "title": { "query": "d", "max_expansions": 5 } } } }'| grep title...
query_then_fetch 是默认值,它对词频的计算方式和所在的问题如上文所述。 dfs_query_then_fetch 就是为了解决我们今天遇到的问题的,当search_type设置为它的时候,词频的计算方法是整个索引(index)而不是单个分片(shard),这样会得到更准确的tf-idf评分。 不过文档上面比较讨厌的是没有说明这个参数是加在哪里的,答...
Elasticsearch的搜索类型(SearchType类型) 1、 query and fetch 向索引的所有分片 ( shard)都发出查询请求, 各分片返回的时候把元素文档 ( document)和计算后的排名信息一起返回。 这种搜索方式是最快的。 因为相比下面的几种搜索方式, 这种查询方法只需要去 shard查询一次。 但是各个 shard 返回的结果的数量之和可...
Elasticsearch的搜索类型(SearchType类型) 1、 query and fetch 向索引的所有分片 ( shard)都发出查询请求, 各分片返回的时候把元素文档 ( document)和计算后的排名信息一起返回。 这种搜索方式是最快的。 因为相比下面的几种搜索方式, 这种查询方法只需要去 shard查询一次。 但是各个 shard 返回的结果的数量之和可...
缺省的搜索类型是query_then_fetch。 在某些情况下,你可能想明确设置search_type为dfs_query_then_fetch来改善相关性精确度: 代码语言:javascript 复制 GET/_search?search_type=dfs_query_then_fetch 搜索类型dfs_query_then_fetch有预查询阶段,这个阶段可以从所有相关分片获取词频来计算全局词频。我们在被破坏的相关...
3.根据search_type获取对应的TransportSearchTypeAction,执行具体的搜索逻辑 本文将接着上篇文章,以QUERY_THEN_FETCH为例,讲解搜索的QUERY阶段具体逻辑 1. 搜索参数初始化 由上篇文章可知,如果search_type为空(默认)或者为"query_then_fetch",那么elasticsearch会调用TransportSearchTypeAction的子类TransportSearchQueryThen...
1)代表document的唯一标识,与index和type一起,可以唯一标识和定位一个document ( 2)我们可以手动指定document的id(put /index/type/id),也可以不指定,由es自动为我们创建一个id 不同的数据 放在不同的index中。 手动指定 (1)根据应用情况来说,是否满足手动指定document id的前提: ...
search_type 查询类型,6.4.0只支持QUERY_T-HEN_FETCH与DFS_QUERY_TH-EN_FETCH。 request_cache 查询缓存,如果设置为false,取决于index级别的设置,将在索引管理API时详细讲解。 search_results 是否允许部分成功,例如一个查询请求需要向3个分片发出请求,如果只有两个分片成功返回结果而另外一个出现故障。如果设置为fal...
toJSONString(file), XContentType.JSON); indexRequest.setPipeline("attatchment"); IndexResponse indexResponse = client.index(indexRequest, RequestOptions.DEFAULT); System.out.println(indexResponse); } 文件查询 文件查询需要使用SearchRequest对象,首先我要指定对我们的关键字使用ik分词器的ik_smart模式分词 ...