一、高级检索的功能点

通过高级搜索配置搜索项,能更准确的过滤掉不相干信息,获取最想要的检索信息。 
以Google搜索为例(截取核心片段): 

二、高级检索拆分

1、包含以下全部的关键词:

需要分词处理; 
若需要指定字段,则使用matchQuery实现; 
若无需指定字段的全文检索,则使用queryStringQuery实现;

2、包含以下的完整关键词 :

需要完整匹配字符,使用wildcardQuery结合”*”实现;

3、包含以下任意一个关键词 :

空格分隔每个关键词,需要将多个词空格拆分,然后对每个关键词通过should结合wildcardQuery遍历实现;

4、不包括以下关键词 :

包含以下全部关键词的反面, 
若需要指定字段,则使用must_not结合matchQuery实现; 
若无需指定字段,则使用must_not结合queryStringQuery实现;

5、限定要搜索的网页的时间是:

限定搜索的开始和结束时间,通过rangequery实现。

6、关键词位置:

根据关键词位置的不同,采用不同的实现; 
关键词位于title字段:指定title进行检索; 
关键词位于content字段:指定content进行检索; 
关键词位于全部字段:不指定字段进行检索,多使用 queryStringQuery实现。

三、DSL高级检索实现

POST detail_index/_search
{"from" : 0,"size" : 10,"query" : {"bool" : {"must" : [{"match" : {"title" : {"query" : "苹果乔布斯","operator" : "OR","prefix_length" : 0,"max_expansions" : 50,"fuzzy_transpositions" : true,"lenient" : false,"zero_terms_query" : "NONE","boost" : 1.0}}},{"wildcard" : {"title.keyword" : {"wildcard" : "*苹果总裁库克*","boost" : 1.0}}},{"range" : {"public_time" : {"from" : "2017-09-07 00:00:00","to" : "2017-09-15 23:59:59","include_lower" : true,"include_upper" : true,"boost" : 1.0}}}],"must_not" : [{"wildcard" : {"title.keyword" : {"wildcard" : "*苹果梨*","boost" : 1.0}}}],"should" : [{"wildcard" : {"title.keyword" : {"wildcard" : "*苹果手机*","boost" : 1.0}}},{"wildcard" : {"title.keyword" : {"wildcard" : "*iphoneX*","boost" : 1.0}}}],"disable_coord" : false,"adjust_pure_negative" : true,"boost" : 1.0}},"_source" : {"includes" : ["title","content"],"excludes" : [ ]},"highlight" : {"pre_tags" : ["<span style=\"color:red\">"],"post_tags" : ["</span>"],"fragment_size" : 100,"number_of_fragments" : 5,"require_field_match" : true,"fields" : {"title" : { }}}
}

以上DSL对应如下: 

Elasticsearch实现类Google高级检索相关推荐

  1. ElasticSearch高级检索总结

    1.1 检索方式 _search ES官方提供了两中检索方式:一种是通过 URL 参数进行搜索,另一种是通过 DSL(Domain Specified Language) 进行搜索.官方更推荐使用第二 ...

  2. [西柚仔]ElasticSearch高级检索总结

    1.1 检索方式 _search ES官方提供了两中检索方式:一种是通过 URL 参数进行搜索,另一种是通过 DSL(Domain Specified Language) 进行搜索.官方更推荐使用第二 ...

  3. 3.8 高级检索方式(二)

    上节已经介绍了五种高级检索方式,现在我们来学习另外五种.事实上,今天要介绍的五种高级检索方式有共通之处:都可以解决上节提到的最后一个用户需求:帮助小明快速定位游戏分类,过滤掉其他分类内容. 六.Boo ...

  4. 使用google高级搜索技巧

    练习使用google高级搜索技巧: 关键字 and 关键字:在Google的检索规则中,最基本的一条是默认And规则,即当你输入多个检索词之后,Google默认为要检索所有的包含所有检索词的网页,它们 ...

  5. ElasticSearch工具类封装

    最近在项目中有看到一种比较实用的ElasticSearch工具类封装方式,特此记录便于日后查阅.         1.controller层 @RequestMapping(value = " ...

  6. Google 高级搜索

    Google高级搜索 可以使我们更好的使用网络,用好googe 高级搜索是我们搜索信息最得力的工具. "高级搜索"页的工作原理 您可以在"高级搜索"页中输入搜索 ...

  7. Case Study: 利用JS设计高级检索功能通过PHP获取MySQL数据

    一.目标 该笔记的目的是引导读者借助WampServer平台和MySQL数据库,利用HTML/CSS/JS/PHP设计一个含有高级检索功能的数据库网页.该功能效果如图1所示.用户在文本框中输入相应内容 ...

  8. 黑马程序员-----集合框架类(四) 高级for循环、方法的可变参数及静态导入

    ------- android培训.java培训.期待与您交流! ---------- 黑马程序员-----集合框架类(四) 高级for循环.方法的可变参数及静态导入 1.1 高级for循环(示例1) ...

  9. 面试精讲之面试考点及大厂真题 - 分布式专栏 17 ElasticSearch解决大数据量检索难题

    17 ElasticSearch解决大数据量检索难题 理想的书籍是智慧的钥匙. --列夫·托尔斯泰 引言 如果你的项目里有超过千万上亿级别的数据,且数据日增量较大需要高性能检索时,如订单数据,你该怎么 ...

最新文章

  1. ivf技术_体外受精技术介绍 谁需要IVF技术帮助
  2. gcc编译器和mysql源码哪个难_源码编译mysql 5.5
  3. RandomUnderSampler 中的fit_resample 是 imblearn.base.py中调用output = self._fit_resample(X, y)
  4. ActionScript3(AS3)类库学习之(八)——自定义上下文菜单
  5. lesson3 数码管静态显示及定时器和中断应用
  6. 嵌入式linux字符设备驱动
  7. jquery在线预览PDF文件,打开PDF文件
  8. 求两等长升序序列的中位数
  9. java.lang.NullPointerException org.apache.jsp.index_jsp._jspInit(index_jsp.java:22)
  10. iOS 使用FFmpeg
  11. 国内pip源提示“not a trusted or secure host”解决方案
  12. 2020年容器应用的新思考
  13. android html转ubb,将 html 转成 ubb代码的小脚本
  14. 卸载oracle10g教程,卸载Oracle10g步骤
  15. 最近在用的一个跟单软件
  16. IEC61850和IEC60870-6(TASE.2)的比较
  17. docker MySQL 双主_DockerMysql数据库实现双主同步配置详细·TesterHome
  18. android studio基础教程:2.程序在哪写
  19. pandas 筛选数据的 8 个骚操作
  20. 支付宝支付 微信支付SDK接口不统一? 盘他!

热门文章

  1. Invalid bound statement (not found)
  2. java如何接受字符_java中string怎么获取指定位置的字符
  3. Windows Server 笔记之活动目录,域的联系和区别
  4. NRF24L01跳频抗信道干扰功能探讨
  5. 怎样用c语言写超市管理程序,C语言超市收银管理系统实现程序.doc
  6. css初始化_CodeMirror项目【在线编辑器】--项目初始化
  7. qpython numpy_Python-Numpy全面精简教程
  8. 安装mysql查看随机密码命令_linux安装mysql-8.0.21-1.el7.x86_64.rpm-bundle - 君主-bye
  9. python写前端代码_python学习之路前端-JavaScript
  10. asp dsn mysql 连接失败_ASP连接MySQL遇到一些问题 Microsoft OLE DB Provider for ODBC Drivers (0x80004005)...