elasticsearch搜索

底层原理先不说,后面再看。先把搜索总结一下。

curl -XGET http://127.0.0.1:9200/logstash-2015.06.21/testlog/_search?q=first

elasticsearch支持很多搜索形式,但是query语法和kibana后面联系最大,所以总结一下

query语法

  • 全文检索:直接写搜索的单词,如 first;
  • 单字段的全文检索:在搜索单词之前加上字段名和冒号,比如如果知道单词 first 肯定出现在 mesg 字段,可以写作 mesg:first;
  • 单字段的精确检索:在搜索单词前后加双引号,比如 user:"chenlin7";
  • 多个检索条件的组合:可以使用 NOT, AND和 OR 来组合检索,注意必须是大写。比如 user:("chenlin7" OR "chenlin") AND NOT mesg:first;
  • 字段是否存在:exists:user表示要求 user 字段存在,missing:user表示要求 user 字段不存在;
  • 通配符:用 ? 表示单字母,表示任意个字母。比如 fir?t mess
  • 正则:需要比通配符更复杂一点的表达式,可以使用正则。比如 mesg:/mes{2}ages?/。注意 ES 中正则性能很差,而且支持的功能也不是特别强大,尽量不要使用。ES 支持的正则语法见:https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-regexp-query.html#regexp-syntax
  • 近似搜索:用 ~
    表示搜索单词可能有一两个字母写的不对,请 ES 按照相似度返回结果。比如frist~;
  • 范围搜索:对数值和时间,ES 都可以使用范围搜索,比如:rtt:>300,date:["now-6h" TO "now"} 等。其中,
    []表示端点数值包含在范围内,{}表示端点数值不包含在范围内;
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • URL querystring语法 全文检索: 单字段全文检索: 条件组合 单字段精确检索: 多个检索条件的组合:...
    壹点零阅读 4,827评论 0 2
  • 批量操作 首先创建一个用于演示的索引 _mget批量查询 也可以这样写 bulk批量导入 批量导入可以合并多个操作...
    眼君阅读 5,319评论 0 4
  • 搜索数据建立 ElasticSearch最诱人的地方即是为我们提供了方便快捷的搜索功能,我们首先尝试使用如下的命令...
    lookphp阅读 2,934评论 0 1
  • 这里简单记录一下elasticsearch java api 的调用。首先,初始化一个client. 初始化cli...
    朝圣的路上阅读 4,697评论 0 0
  • 人再完美,精神也需要知音,心再坚强。情感也需要慰藉;若有人能陪。就是莫大的满足;若有心能明,便是最好的心语倾诉。 ...
    燕子格格阅读 1,170评论 0 0