搜索总体有:term 查询, phrase查询, boolean 查询

1. SOLR搜索覆盖度和准确度保证的三个搜索方式:

保证准确率: AND: Search for two different terms, new and house, requiring both to match 。完全相同逻辑的两种写法:(+new +house           new AND house )

保证覆盖率:OR : Search for two different terms, new and house, requiring only one to match 。solr默认的是OR搜索,所以(new or house,  new  house)结果一样

保证精准度: "":   Search for the exact phrase "new house" ,查询full phrase,则solr会考虑在 new AND house的结果集基础上,考虑new 和house之间的position。

保证覆盖率:Fuzzy matching 模糊搜索(包含:wildcard searching通配符搜索, range searching范围搜索, edit-distance searching编辑距离搜索, and proximity searching邻近搜索. )

其中,

(1)范围搜索例子如下:•  Query: yearsOld:[18 TO 21] Matches 18, 19, 20, 21 ;•  Query: title:[boat TO boulder] Matches boat, boil, book, boulder, etc. ;•  Query: price:[12.99 TO 14.99] Matches 12.99, 13.000009, 14.99, etc. ,范围用{}或[]或者[}或者{],同集合区间表示一样。

(2)编辑距离搜索中:编辑距离定义是An edit distance is defined as an insertion插入, a deletion删除, a substitution置换替换, ora transposition互换 of characters.

 例子如下:Query: administrator~1 Matches within one edit distance. •  Query: administrator~2 Matches within two edit distances. (T his is the default if no edit distance is provided.) •  Query: administrator~N Matches within N edit distances

(3)邻近搜索指的是搜索两个term之间的term:Query: "chief of ficer"~1 ,当你只记得短语的第一个和最后一个词的时候可以采用邻近搜索。邻近搜索的例子:Query: "chief of ficer"~N ---  Meaning: Finds chief within N positions of off icer.

2. SOLR提供的排除搜索:

NOT或者 -,都表示否定;如 中国  NOT 北京====中国  - 北京

3. SOLR支持野蛮查询:增加了搜索的灵活性

New AND (house OR (home NOT improvement NOT depot NOT grown)) 

(+(buying purchasing -renting) +(home house residence –(+property -bedroom)))

不论用什么逻辑来搜索,solr都是先搜索每个term的结果集,然后进行逻辑操作返回真实结果

备注:为了和+   等符号区分,solr中将AND , OR描述为 binary operator

总体来说:越复杂的搜索越影响效率,所以采用哪种搜索以及设置的参数都需要经过分析,否则保证了业务搜索的效果而影响了性能。

solr :term 查询, phrase查询, boolean 查询的更多相关文章

  1. Solr 使用自定义 Query Parser(短语查询,精准查询)

    原文出处:http://blog.chenlb.com/2010/08/solr-use-custom-query-parser.html 由于 Solr 默认的 Query Parser 生成的 Q ...

  2. Solr基础理论【倒排索引,模糊查询】

    一.简介 现有的许多不同类型 的技术系统,如关系型数据库.键值存储.操作磁盘文件的map-reduce[映射-规约]引擎.图数据库等,都是为了帮助用户解决颇具挑战性的数据存储与检索问题而设计的.而搜索 ...

  3. 获取文档版本版本值 滚动标识符 游标 控制查询如何执行 控制查询在哪些分片执行 boost加权

    映射mapping.json{ "book": { "_index": { "enabled": true }, "_id&quo ...

  4. ElasticSearch的高级复杂查询:非聚合查询和聚合查询

    一.非聚合复杂查询(这儿展示了非聚合复杂查询的常用流程) 查询条件QueryBuilder的构建方法 1.1 精确查询(必须完全匹配上,相当于SQL语句中的“=”) ① 单个匹配 termQuery ...

  5. 通讯服务类API调用的代码示例合集:短信服务、手机号归属地查询、电信基站查询等

    以下示例代码适用于 www.apishop.net 网站下的API,使用本文提及的接口调用代码示例前,您需要先申请相应的API服务. 短信服务:通知类和验证码短信,全国三网合一通道,5秒内到达,费用低 ...

  6. 生活常用类API调用的代码示例合集:邮编查询、今日热门新闻查询、区号查询等

    以下示例代码适用于 www.apishop.net 网站下的API,使用本文提及的接口调用代码示例前,您需要先申请相应的API服务. 邮编查询:通过邮编查询地名:通过地名查询邮编 今日热门新闻查询:提 ...

  7. SpringData JPA进阶查询—JPQL/原生SQL查询、分页处理、部分字段映射查询

    上一篇介绍了入门基础篇SpringDataJPA访问数据库.本篇介绍SpringDataJPA进一步的定制化查询,使用JPQL或者SQL进行查询.部分字段映射.分页等.本文尽量以简单的建模与代码进行展 ...

  8. 013.子查询和分页子查询(sql实例)

    --1 子查询 如果子查询和表连接都实现的时候,推荐用表连接实现( 一般:能用表连接实现的就用表连接,有些情况用表连接不能 或者不易实现的再选择子查询) 系统:缓存,执行计划技术手段 --1 wher ...

  9. 015-elasticsearch5.4.3【五】-搜索API【四】Joining 多文档查询、GEO查询、moreLikeThisQuery、script脚本查询、span跨度查询

    一.Joining 多文档查询 joining query 像Elasticsearch这样的分布式系统中执行完整的SQL样式连接非常昂贵.相反,Elasticsearch提供两种形式的连接,旨在水平 ...

随机推荐

  1. TCP/IP详解学习笔记(1)-基本概念【转】

    转自:http://blog.csdn.net/goodboy1881/article/details/665041 为什么会有TCP/IP协议 在世界上各地,各种各样的电脑运行着各自不同的操作系统为 ...

  2. C++Builder XE5对于C++11的支持真蛋疼

    好不容易下载个XE5,安装,破解,准备测试一下C++11中的lambda,写了一个最简单的表达式: [](){}; 居然编译通不过. 查了帮助文档,才晓得它的编译器分为BCC32和BCC64, BCC ...

  3. js动态拼接参数到请求的url上

    var queryConfig={ "page" : "index", "method" : 2, //1:按照方法A查看 2:按照方法B查 ...

  4. deep learning 学习笔记(三) 线性回归学习速率优化寻找

    继续学习http://www.cnblogs.com/tornadomeet/archive/2013/03/15/2962116.html,上一节课学习速率是固定的,而这里我们的目的是找到一个比较好 ...

  5. 2018.7.6 TX射频调试-PP

    1  电路图 2 layout 3调试 Y1是谐振器,Q1是放大器,C3决定功率(C3容值越大,功率越大)L2与C2构成振荡器(用于调节频偏),R1对功率影响最大. a 功率调试 用频谱仪:功率每+3 ...

  6. Mysql系列:高可用(HA)-keeplived

    转自:晓叹星沉 https://my.oschina.net/blueSky4Java/blog/1572905 摘要: 随着项目的发展,为了提高程序的性能,数据库层面或多或少的会用到HA.读写分离. ...

  7. fastCGI模块

    这个模块允许nginx同FastCGI协同工作,并且控制哪些参数将被安全传递.例: location / { fastcgi_pass localhost:9000; fastcgi_index in ...

  8. Python Indentation

    In Python, code blocks don't have explicit begin/end or curly braces to mark beginning and end of th ...

  9. hdu 3932 Groundhog Build Home——模拟退火

    题目:http://acm.hdu.edu.cn/showproblem.php?pid=3932 注意平均值与最远的点距离为0的情况.所以初值设成-1,这样 id 就不会乱.不过设成0也可以.注意判 ...

  10. Python collections系列之默认字典

    默认字典(defaultdict)  defaultdict是对字典的类型的补充,它默认给字典的值设置了一个类型. 1.创建默认字典 import collections dic = collecti ...