elasticsearch服务器开发学习笔记(三.一)

elasticsearch服务器开发学习笔记(三.一)

初识es查询

查询es返回你需要的结果

基本查询
dsl查询,
过滤

简单的查询

POST weibobook/wapbook/_search
{
  "version": true, 
  "from": 2,
  "size":10,
  "query": {
    "query_string": {
      "query": "book_title:美女"
    }
  }
}

分页

from 从哪里开始 
size 每页数据的多少

返回版本

version true

限制得分

min_score:0.75

获取需要返回的字段

 "fields" : [ "book_title", "author","cate_name"],

 "fields" : [ *],

部分字段–尝试了下是不行的,可能需要调整

"partial_fields" : {
    "partial1" : {
      "include" : [ "titl*" ],
      "exclude" : [ "chara*" ]
} },

加上脚本字段

"script_fields" : {
"correctYear" : {
          "script" : "doc['book_id'].value - 1800"
    } },

理解es查询过程

基本的查询过程

要知道在大多数情况下, Elasticsearch需要分散查询到多个节点中,得到结果,合并它们,再获取有关文档并返回结果。 我们还没谈到的是另外三个定义查询行为的东西:查询重写、搜索类型和查询执行偏好。

查询逻辑

分散到各个分片,收集得到id和分数
再次查询得到结果

搜索的类型

POST weibobook/wapbook/_search?type=query_then_fetch

query_then_fetch:第一步,执行查询得到对文档进行排序和分级所需信息。这一步 在所有的分片上执行。然后,只在相关分片上查询文档的实际内容。不同于query_and_fetch,此查询类型返回结果的最大数量等于size参数的值。如果没有指定搜索类型, 就默认使用这个类型,前面描述过。

 query_and_fetch:这通常是最快也最简单的搜索类型实现。查询在所有分片上并行执 行(当然,任意一个主分片,只查询一个副本),所有分片返回等于size值的结果数。返 回文档的最大数量等于size的值乘以分片的数量。

 dfs_query_and_fetch:这个跟query_and_fetch类似,但相比query_and_fetch, 它包含一个额外阶段,在初始查询中执行分布式词频的计算,以得到返回文件的更精确 的得分,从而让查询结果更相关。

 dfs_query_then_fetch:与前一个dfs_query_and_ fetch一样,dfs_query_then_fetch 类似于相应的query_then_fetch,但比query_ then_fetch多了一个额外的阶段,就像 dfs_query_and_fetch一样。

count:这是一个特殊的搜索,只返回匹配查询的文档数。如果你只需要结果数量,而不 关心文档,应该使用这个搜索类型。

scan:这是另一个特殊的搜索类型,只有在要让查询返回大量结果时才用。它跟一般的 查询有点不同,因为在发送第一个请求之后,Elasticsearch响应一个滚动标识符,类似于 关系型数据库中的游标。所有查询需要在_search/scroll REST端点运行,并需要在请 求主体中发送返回的滚动标识符。

搜索执行偏好

preference=_local

_primary 只在主分片上执行搜索,不使用副本。当想使用索引中最近更新的、还没复制到副本 中的信息,这个是很有用的
_primary_first 如果主分片可用,只在主分片上执行搜索,否则才在其他分片上执行
_local 在可能的情况下,只在发送请求的节点上的可用分片上执行搜索
_only_node:node_id 只在提供标识符的节点上执行搜索
_prefer_node:node_id Elasticsearch将尝试在提供标识符的节点上执行搜素。如果该节点不可用,则使用其 他的可用节点
_shards:1,2;_local
自定义值 可以传入任何自定义字符串值,具有相同值的请求将在相同的分片上执行

搜索分配api

    POST weibobook/wapbook/_search_shards?pretty
{
  "query":"match_all":{}
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值