zoukankan      html  css  js  c++  java
  • elastic search query & filter & query_string

     

     

     

     一、基本概念

    1、query时,如何指定返回哪些字段

    希望返回name和date字段

    希望返回以location.*为前缀的字段以及date字段;不希望返回location.geolocation字段。

    2、如何对检索到的结果进行排序

    3、同时使用多种限制进行查询

    4、response中各个字段分别是什么意思

    5、在某个字段中查找含有指定字段的记录

    6、query和filter有何区别?

    query是模糊匹配,filter是yes/no匹配。正因如此,filter会比query运行起来快很多。

    7、如何使用filter来约束query的搜索结果

    二、几种常用的搜索方式

    1、match_all 搜索

    match_all顾名思义就是会返回所有指定index下的document。一般来说,它会配合filter进行使用,用来提取满足某些条件的document。例如:

    其中,get-together为index名。

    2、query_string 搜索

    最简单的query_string的用法为:

     默认情况下,query_string会检索 _all 字段,这个字段会将document内所有的字段打包在一起。若想要指定query_string搜索的字段,那么可以在query语法内,使用诸如"description:nosql"或设置默认字段 default_field: description,例如:

    如此,由于query语法内未指定搜索的字段,那么query_string将在default_field指定的description字段下搜索含有nosql的document。

    3、AND OR 及 exclude 操作

    例如,要搜索名字中含有nosql字样,但description中不含有mongodb字样的document

    4、如何在指定时间范围内进行搜索

     

    5、在哪能查到query_string的所有语法

    http://www.lucenetutorial.com/lucene-query-syntax.html

    query_string虽然提供了丰富而强大的语法,但是若使用过于复杂的语法会导致阅读难度陡增。例如下面这段query_string:

  • 相关阅读:
    jquery获得url的get参数
    WampServer更改或重置数据库密码
    phpexcel乱码问题
    5kcrm增加权限管理中的模块(签到统计)
    windows关于定时执行的php脚本
    php 中引入邮箱服务 , 利用第三方的smtp邮件服务
    thinkphp 多个字段的不同关系的查询条件实现 .
    redis与memcached有什么区别
    MYSQL语句大全
    使用HttpClient工具类发起Restful API调用
  • 原文地址:https://www.cnblogs.com/elaron/p/7699623.html
Copyright © 2011-2022 走看看