IT教程 ·

Solr搜索剖析及查询剖析器用法概述

仅仅知道如何终止XHR请求,或许对你来说是不够的!

一.简介

大多数查询都运用 了规范的Solr语法。这类语法是Solr最罕见的,由默许查询剖析器负责处置惩罚。Solr的默许查询剖析器是Lucene查询剖析器【LuceneQParserPlugin类完成】。Lucene查询剖析器周全支撑Lucene语法及Solr的一些专用扩展。

二.Lucene查询剖析器语法

  1.字段搜刮

在Solr索引中搜刮一个值时,平常来说是在特定字段上举行查找。字段搜刮语法是:字段称号+‘:’+搜刮内容,举例以下:

Solr搜索剖析及查询剖析器用法概述 IT教程 第1张

title:solr 或 title:"apache solr" request_content_split:(流程 问题) 备注:括号示意鸠合,用空格离隔每一个元素,默许示意OR的寄义

只管关键词搜刮不明白指定字段的做法很罕见,大须要注重的是,平常在定义的默许字段上举行关键词搜刮。举例来说,假如content定义为默许字段【df=content】,则以下两个查询是等价的:

solr 或 content:solr

还须要注重的是,字段和冒号背面的表达式局限必需明白定义。以下两个查询是等价的【假定df=content】,不过在第一个查询中用户大概存在其他企图。

title:apache solr 或 title:apache content:solr

假如在同一个字段中搜刮多个词项,运用组合表达式,在字段搜刮中指定词项的局限:

title:(apache solr)

假如尝试短语搜刮,运用引号【而不是括号】来定义短语局限,只管如许会致使查询请求短语的一切词项必需同时涌现。

title:"apache solr"

  2.必备词项【运用较少】

为指定一个或多个词项必需涌现,运用一元运算符+来连接词项。除非文档包含指定的词项,不然不予婚配。假如婚配的文档必需包含多个词项,运用二元运算符AND或&&,不然对每一个词项都运用一元运算符+。

Solr搜索剖析及查询剖析器用法概述 IT教程 第2张

 

假如默许运算符是AND,在没有指定其他运算符的状况下,每一个词项都请求必备。因为每增添一个必备词项都邑进一步限定文档集合的结果总数,因而经由过程运用多个必备词项可以加速查询速率,从而进一步优化结果数目。

  3.可选词项

比拟限定必备字段的做法,扩展婚配的文档数目则适用于别的一些状况。默许运算符是OR,除非有其他指定,不然每一个表达式都是可选的。同样地,多个表达式之间运用二元运算符OR或||,这示意婚配的文档中最少包含个中一个词项。

Solr搜索剖析及查询剖析器用法概述 IT教程 第3张

值得注重的是,可选词项越多会致使婚配文档集越大,OR运算比其它布尔运算的实行本钱更高。关于关键词搜刮,假如内容数目有限,而且愿望以捐躯查准率为代价,确保可以返回一些结果【更高的查全率】,那末会斟酌运用OR作为默许运算符。因为多个可选词项的文档婚配通常会致使较高的相干度得分,运用OR作为默许运算符并依据相干度得分排名的话,依然有大概取得搜刮结果中最相干的那部份结果。不过,与请求婚配一切关键词差别的是,扩展查询会获得更多一些新鲜的婚配结果。

  4.短语搜刮【运用较少,且必需运用在运用了分词器的字段上】

假如想要婚配相互相邻的多个词项,运用引号把它们括起来视为一个短语。此查询表达式不能保证婚配出完整一样的文本,被搜刮字段大概包含对短语中词项举行修正的分析器。最合理的特定短语搜刮不应该婚配无关的短语。短语搜刮适用于内容中特定字段和多词称号的处置惩罚。

  5.组合表达式【经常使用】

为处置惩罚恣意庞杂的布尔子句,Solr运用括号将查询表达式组合在一起。

Solr搜索剖析及查询剖析器用法概述 IT教程 第4张

组合表达式可以设置表达式的上下文,比方,指明在同一个字段中搜刮多个单词。组合表达式可以恣意嵌套。

  6.词项邻近度

短语搜刮是词项相似度搜刮的简化版本。经由过程增加波浪线和词项位置间隔数搜刮位置邻近的词项,不一定是相邻的。

Solr搜索剖析及查询剖析器用法概述 IT教程 第5张

短语搜刮是词项位置间隔为0的邻近搜刮。

Solr搜索剖析及查询剖析器用法概述 IT教程 第6张

词项间隔为3示意查询两词之间词项间隔<=3的搜刮,两词项交流位置相当于移动了两个词项位置。

指定足够大的有用邻近值,可以婚配出文档中恣意位置的词项,这与AND查询结果相似。词项邻近度查询另有一个副作用,在文档中词项越接近,该毗邻查询对应的相干度得分就越高。与组合查询比拟,当词项间隔较大时,运用邻近词搜刮消费本钱更高。

  7.字符邻近

不仅可以在词项之间举行邻近搜刮,还可以对词项中的字符举行基于编辑间隔的搜刮,找到拼写相似的词项。字符邻近搜刮的语法与词项邻近搜刮相似,因为字符邻近搜刮处置惩罚的是一个词项,因而不带引号。

Solr搜索剖析及查询剖析器用法概述 IT教程 第7张

1示意与搜刮词项最多有一个字符的差异,包含多一个字符,少一个字符和一个字符不一样三种状况。

  8.消除词项

偶然我们须要从查询中明白消除特定词项。在表达式上运用一元运算符-【减号】或在表达式之间运用NOT布尔运算符来消除词项。

Solr搜索剖析及查询剖析器用法概述 IT教程 第8张

Solr搜索剖析及查询剖析器用法概述 IT教程 第9张

  9.区间搜刮【方括号为闭区间,花括号为开区间】

偶然候我们不愿望查询表达式只婚配出一个值,而是婚配出值的全部区间。区间可所以数值区间、日期区间或字符串区间。区间搜刮可以找到指定的一组值,其语法为字段名加冒号再加一个方括号。

Solr搜索剖析及查询剖析器用法概述 IT教程 第10张

假如没有指定区间的最大值和最小值,则须要对开区间的上限和下线运用通配符*

Solr搜索剖析及查询剖析器用法概述 IT教程 第11张

  10.通配符搜刮

有些状况下用户须要对Solr索引中单词或短语的变体举行婚配。关于用户输入的大多数关键词而言,词干提取这类手艺让通配符搜刮变得没那末重要了,但是关于查找以特定字符集开头的文档或替换单个字符的操纵,通配符搜刮照样另有用武之地的。

Solr搜索剖析及查询剖析器用法概述 IT教程 第12张

  11.权重表达式

假如表达式背面指定了一个插进去号【^】,无论是词项、短语照样组合表达式,都可以调解相干度权重。

Solr搜索剖析及查询剖析器用法概述 IT教程 第13张

 

  12.特别字符转义【分词器字段除外】

Solr中有些字符是保存字符,也就是说,它们被当作查询语法举行剖析,而不是作为搜刮词项。包含:

Solr搜索剖析及查询剖析器用法概述 IT教程 第14张

 

假如要搜刮保存字符,必需将保存字符用引号括起来,或许运用反斜杠对其举行转义。关键词中处置惩罚保存字符的引荐做法是在传入Solr之前去除没有搜刮代价的保存字符,或许对它们顺次运用反斜杠举行转义。

Solr搜索剖析及查询剖析器用法概述 IT教程 第15张

 

当搜刮字段为分词器字段时,保存字符会被分词过滤掉,因而搜刮时不加保存字符也可以搜刮到!

JavaScript 构造函数的继承

参与评论