`
kavy
  • 浏览: 888536 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Solr学习之五:Solr查询参数及语法

 
阅读更多

一. 查询参数

1. CoreQueryParam查询的参数

1) q: 查询字符串,必须的。

2) q.op: 覆盖schema.xml的defaultOperator(有空格时用"AND"还是用"OR"操作逻辑),一般默认指定。

3) df: 默认的查询字段,一般默认指定。

4) qt: query type,指定查询使用的QueryHandler,默认为“standard”。

5) wt: writer type。指定查询输出结构格式,默认为“xml”。在solrconfig.xml中定义了查询输出格式:xml、json、python、ruby、php、phps、custom。

6) echoHandler:是否在查询结果中显示使用的QueryHandler名称。

7) echoParams:是否显示查询参数。none:不显示;explicit:只显示查询参数;all:所有,包括在solrconfig.xml定义的Query Handler参数。

8) indent - 返回的结果是否缩进,默认关闭,用indent=true|on 开启,一般调试json,php,phps,ruby输出才有必要用这个参数。

9) version - 查询语法的版本,建议不使用它,由服务器指定默认值。

2.CommonQueryParameters查询的参数

1) sort:排序,格式:sort=<field name>+<desc|asc>[,<fieldname>+<desc|asc>]„ 。示例:(inStock desc, priceasc)表示先 “inStock” 降序, 再 “price” 升序,默认是相关性降序。。

2) start:用于分页定义结果起始记录数,默认为0,从第1条记录开始。

3) rows:用于分页定义结果每页返回记录数,默认为10。

4) fq:filterquery。使用Filter Query可以充分利用FilterQuery Cache,提高检索性能。作用:在q查询符合结果中同时是fq查询符合的,例如:q=mm&fq=date_time:[20081001TO 20091031],找关键字mm,并且date_time是20081001到20091031之间的。(fq查询字段后面的冒号和关键字必须有)

5) fl:field list。指定返回结果字段。以空格“ ”或逗号“,”分隔。

6) debugQuery:设置返回结果是否显示Debug信息。

7) explainOther:设置当debugQuery=true时,显示其他的查询说明。

8) defType:设置查询解析器名称。

9) timeAllowed:设置查询超时时间。

10) omitHeader:设置是否忽略查询结果返回头信息,默认为“false”。

二. 查询语法

1. 匹配所有文档:*:*

2. 强制、阻止和可选查询:

1) Mandatory:查询结果中必须包括的(for example, only entry name containing theword make)Solr/LuceneStatement:+make, +make +up ,+make +up +kiss

2) prohibited:(for example, alldocuments except those with word believe)

Solr/LuceneStatement:+make +up -kiss

3) optional:Solr/Lucene Statement:+make +up kiss

3. 布尔操作:AND、OR和NOT布尔操作(必须大写)与Mandatory、optional和prohibited相似。

1) make AND up = +make +up :AND左右两边的操作都是mandatory

2) make || up = make OR up=make up :OR左右两边的操作都是optional

3) +make +up NOT kiss = +make +up–kiss

4) make AND up OR french AND Kiss不可以达到期望的结果,因为AND两边的操作都是mandatory的。

4. 子表达式查询(子查询):可以使用“()”构造子查询。

For ex:(make AND up) OR (french AND Kiss)

5. 子表达式查询中阻止查询的限制:For ex:make (-up):只能取得make的查询结果;要使用make (-up *:*)查询make或者不包括up的结果。

6. 多字段fields查询:通过字段名加上分号的方式(fieldName:query)来进行查询

For ex:entryNm:make AND entryId:3cdc86e8e0fb4da8ab17caed42f6760c

7. 通配符查询(wildCard Query):

1) 通配符?和*:“*”表示匹配任意字符;“?”表示匹配出现的位置。

For ex:ma?*(ma后面的一个位置匹配),ma??*(ma后面两个位置都匹配)

2) 查询字符必须要小写:+Ma +be**可以搜索到结果;+Ma +Be**没有搜索结果

3) 查询速度较慢,尤其是通配符在首位:主要原因一是需要迭代查询字段中的每个term,判断是否匹配;二是匹配上的term被加到内部的查询,当terms数量达到1024的时候,查询会失败。

4) Solr中默认通配符不能出现在首位(可以修改QueryParser,设置

setAllowLeadingWildcard为true)

5) set setAllowLeadingWildcard to true.

8. 模糊查询、相似查询:不是精确的查询,通过对查询的字段进行重新插入、删除和转换来取得得分较高的查询解决(由Levenstein Distance Algorithm算法支持)。

1) 一般模糊查询:for ex:make-believ~

2) 门槛模糊查询:对模糊查询可以设置查询门槛,门槛是0~1之间的数值,门槛越高表面相似度越高。For ex:make-believ~0.5、make-believ~0.8、make-believ~0.9

9. 范围查询(RangeQuery):Lucene支持对数字、日期甚至文本的范围查询。结束的范围可以使用“*”通配符。

For ex:

1) 日期范围(ISO-8601 时间GMT):sa_type:2AND a_begin_date:[1990-01-01T00:00:00.000Z TO 1999-12-31T24:59:99.999Z]

2) 数字:salary:[2000 TO *]

3) 文本:entryNm:[a TO a]

10. 日期匹配:YEAR,MONTH, DAY, DATE (synonymous with DAY) HOUR, MINUTE, SECOND,MILLISECOND, andMILLI (synonymous with MILLISECOND)可以被标志成日期。

For ex:

1) r_event_date:[* TO NOW-2YEAR]:2年前的现在这个时间

2)r_event_date:[* TO NOW/DAY-2YEAR]:2年前前一天的这个时间

 

转自:http://blog.csdn.net/gufengshanyin/article/details/21098879

分享到:
评论

相关推荐

    solr查询语法

    ### Solr查询语法详解 #### 一、Core Query Param 查询参数 ...以上是对Solr查询语法及其相关参数的详细介绍。通过合理利用这些参数,我们可以构建出非常复杂的查询条件,以满足不同场景下的搜索需求。

    solr查询语法.pdf

    Solr是一种基于Apache ...Solr查询语法的学习和应用可以帮助开发者快速实现复杂的搜索引擎功能,为用户提供更为精准和丰富的搜索体验。通过掌握本文提到的查询语法,开发者可以更好地使用Solr来满足特定的搜索需求。

    基于Solr的多表join查询加速方法

    - **查询设计**:通过调整查询语句的结构,如使用“exists”查询或“join”查询,以适应Solr的查询机制,提升性能。 - **硬件和架构优化**:例如,增加Solr服务器的内存,使用SSD硬盘提升I/O速度,或者采用更高效的...

    solr学习资料

    1. **查询语言**:Solr 支持复杂的查询语法,可以实现高级搜索需求,如相关度排序。 2. **索引优化**:Solr 提供了高效的数据索引机制,能快速建立和更新索引。 3. **多种数据格式支持**:Solr 支持通过 XML、JSON ...

    Solr 查询,索引

    1. **查询语法**:Solr支持丰富的查询语法,包括标准查询解析器(Standard Query Parser)和Lucene查询语法。例如,`q=field:query`用于指定字段查询,`q=*:*`表示匹配所有文档。 2. **查询解析**:查询字符串会被...

    Solr 学习笔记(五)-Solr扩展之分布式索引实例

    Solr支持复杂的查询语法,包括布尔逻辑、短语匹配、通配符查询等。同时,Solr还提供了 faceting(面导航)、highlighting(高亮显示)和自定义评分等功能,以增强搜索体验。 在分布式环境中的查询执行,Solr会自动...

    Solr项目源码及solr资源包

    Solr项目源码及solr资源包是一个针对搜索引擎平台Apache Solr的学习与实践资源集合,主要结合了Spring Data Solr框架进行操作。这个项目旨在帮助开发者更好地理解和运用Solr进行数据索引和检索。让我们详细地探讨...

    Apache Solr(solr-8.11.1.tgz)

    5. **docs 目录**:包含了Solr的文档,包括用户手册、API参考和教程,对于学习和调试Solr非常有用。 6. **server/solr 目录**:存储了配置集合的目录,每个集合都有自己的配置文件,如`schema.xml`用于定义字段和...

    solr学习笔记

    在Solr的学习过程中,了解其核心概念和查询参数是非常重要的。 一、Query 参数 1. `q`:这是查询字符串,是必需的,用于指定用户输入的搜索关键词。 2. `q.op`:覆盖了 `schema.xml` 中的 `defaultOperator`,定义...

    solr教程+实例

    2.3 查询处理:Solr提供多种查询语法和操作符,支持布尔逻辑、短语匹配、范围查询等。 2.4 分布式搜索:SolrCloud模式允许在多台服务器上部署,实现负载均衡和数据冗余,以应对大规模数据和高并发场景。 三、安装与...

    solr-6.2.0源码

    4. 高级搜索功能:Solr提供丰富的查询语法,如布尔逻辑、短语匹配、模糊匹配、字段限制等,以及自定义查询解析器和过滤器。 5. 自定义排序和评分:用户可以自定义文档排序规则和评分算法,以满足特定的业务需求。 6....

    solr 部署在linux windows环境

    3. **查询与优化**:Solr支持丰富的查询语法和过滤器,可以实现复杂的查询需求。同时,Solr还提供了缓存、分词优化、查询分析等功能,以提升搜索性能。 4. **安全与集群**:在生产环境中,你可能需要考虑Solr的安全...

    solr搜索插件

    Solr支持丰富的查询语法,包括布尔运算符、短语查询、模糊匹配等。同时,你可以调整查询参数以优化搜索性能,如使用缓存、设置评分函数等。 6. **扩展性与定制化**:Solr允许通过插件机制进行扩展,比如自定义查询...

    solr 的使用及安装

    2. **高级查询**:利用 Solr 的查询语法,支持布尔运算符、通配符、短语匹配等。 3. **性能优化**:调整 Solr 的配置参数,如缓存大小、分词器设置等,以提升查询速度。 六、SolrCloud 配置 1. **集群设置**:配置 ...

    windows-solr集群.docx

    Solr不仅支持复杂的查询语法,还具备高度的可配置性和扩展性。 - **特点**: - **全文搜索**: 提供了丰富的查询语言来处理复杂的搜索需求。 - **灵活性**: 支持多种格式的数据源,如XML、CSV等。 - **易于部署**: ...

    solr资料

    - Solr提供了丰富的查询参数,如 `q` 表示查询字符串,`fl` 表示返回字段列表等。 通过上述步骤,您可以初步掌握Solr的基本安装配置、数据添加及简单的查询操作。随着进一步的学习,您将能深入理解Solr的强大功能...

    Apache Solr(solr-8.11.1.zip)

    Solr在其之上添加了更多高级特性,如 faceting(分面搜索),highlighting(高亮显示),以及更复杂的查询语法。 4. **配置文件**:压缩包中的配置文件包括`solrconfig.xml`和`schema.xml`。`solrconfig.xml`定义了...

Global site tag (gtag.js) - Google Analytics