solr视频教程 2.12、Solr的查询及Filter

合集下载

Solr的原理及使用

Solr的原理及使用

Solr的原理及使⽤1.Solr的简介Solr是⼀个独⽴的企业级搜索应⽤服务器,它对外提供类似于Web-service的API接⼝。

⽤户可以通过http请求,向搜索引擎服务器提交⼀定格式的XML⽂件,⽣成索引;也可以通过Http Get操作提出查找请求,并得到XML格式的返回结果。

2.⼯作原理solr是基于Lucence开发的企业级搜索引擎技术,⽽lucence的原理是倒排索引。

那么什么是倒排索引呢?接下来我们就介绍⼀下lucence倒排索引原理。

假设有两篇⽂章1和2:⽂章1的内容为:⽼超在卡⼦门⼯作,我也是。

⽂章2的内容为:⼩超在⿎楼⼯作。

由于lucence是基于关键词索引查询的,那我们⾸先要取得这两篇⽂章的关键词。

如果我们把⽂章看成⼀个字符串,我们需要取得字符串中的所有单词,即分词。

分词时,忽略”在“、”的“之类的没有意义的介词,以及标点符号可以过滤。

我们使⽤Ik Analyzer实现中⽂分词,分词之后结果为:⽂章1:⽂章2:接下来,有了关键词后,我们就可以建⽴倒排索引了。

上⾯的对应关系是:“⽂章号”对“⽂章中所有关键词”。

倒排索引把这个关系倒过来,变成: “关键词”对“拥有该关键词的所有⽂章号”。

通常仅知道关键词在哪些⽂章中出现还不够,我们还需要知道关键词在⽂章中出现次数和出现的位置,通常有两种位置:a.字符位置,即记录该词是⽂章中第⼏个字符(优点是关键词亮显时定位快);b.关键词位置,即记录该词是⽂章中第⼏个关键词(优点是节约索引空间、词组(phase)查询快),lucene中记录的就是这种位置。

加上出现频率和出现位置信息后,我们的索引结构变为:实现时,lucene将上⾯三列分别作为词典⽂件(Term Dictionary)、频率⽂件(frequencies)、位置⽂件 (positions)保存。

其中词典⽂件不仅保存有每个关键词,还保留了指向频率⽂件和位置⽂件的指针,通过指针可以找到该关键字的频率信息和位置信息。

Solr 功能使用

Solr 功能使用

Solr 功能使用1. 准备阶段创建一个user schema,对其进行各种业务操作。

1.1. User元数据结构1.2. Solr schema设计●增加一个copyField text用于文本搜索1.3. 数据导入总共365051条记录,顺便感叹一下耗时,只花了5毫秒:2. 功能使用solr提供了多种语言的sdk,上面导入数据使用的是solrj,以下我就只用使用2.1. 基本查询http://172.16.5.2:8983/solr/user_shard2_replica1/select?q=*:*&wt=json&inden t=true&start=0&row=10&sort=followersCount+desc解释:●查询条件“*:*”,查询所有数据●格式化返回格式json:wt=json&indent=true●从0条开始,返回10条记录:start=0&row=10●按照用户粉丝量倒叙返回:sort=followersCount+desc,“+”号可使用空格代替更多的常用参数:●fq:对查询结果的二次筛选,且会把查询的结果缓存起来,下次同样的查询将直接命中缓存●fl:对返回的结果字段进行限制,例如我只想返回id更丰富的使用规范说明:https:///confluence/display/solr/Query+Syntax+and+Parsing 2.2. 权重查询DisMax以上面的schema为例,假设我需要查询所有“九江”的用户。

地区值是存放在location字段中的,也有可能用户只在location中只存放了“江西”,但是description中有可能存放了和九江相关的介绍,这样这个用户只能说有可能也是九江的,在查询是我希望确定是九江的用户排在前面。

这个时候就可以用到权重这个概念了。

上面的应用场景查询方式:http://172.16.5.2:8983/solr/user_shard2_replica1/select?q=text:%E4%B9%9D %E6%B1%9F&start=0&rows=10&wt=json&indent=true&defType=dismax&qf=l ocation^10+description^3权重查询常用参数:●defType=dismax,属于基本查询的参数,权重查询时必须是dismax●qf:权重设置,例如location^10就是location字段的权重设置,值得大小我理解是相对的,默认不设置的为1●mm:当查询条件(指的是参数个数,而非表达式个数)为多个时,设置返回最少匹配的次数另外还有很多参数,我还没有理解设计意图。

Filter函数使用教学课件

Filter函数使用教学课件
8
6、防错处理:第三参数的使用
• 查找不到数据会报错#CALC!,可以设置报错后的处理: • =FILTER(A2:C19,B2:B19="河北省","") • =FILTER(A2:C19,B2:B19="河北省","无此数据")
9
7、模糊筛选的掌握
• 模糊筛选的掌握,filter函数默认不支持*或?的模糊筛选 • =FILTER(A2:C19,B2:B19="*云南*") 会报错。 • 不过可以搭配其他函数解决模糊筛选的问题: • =FILTER(A2:C19,1-ISERR(FIND("云南",B2:B19)))
6
4、多条件满足其中之一的筛选
• 同时满足多个条件中一个即可被筛选,条件之间用括号和+相连 • =FILTER(A:D,(B:B="博士")+(C:C="辽宁省")+(D:D="A型")) • =FILTER(A:D,(D:D="A型")+(D:D="熊猫血型"))
7
5、数字条件的设置
• 当数据区域含有数字字段时,可以设置用常用数字的运算符: • =FILTER(A2:G17,C2:C17>60) • =FILTER(A2:G17,(C2:C17>60)*(D2:D17>60)) • =FILTER(A2:G17,(C2:C17>90)+(C2:C17<20)) • =FILTER(A2:G17,(C2:C17>90)+(G2:G17<60))
4
2、单区域单条件的设置

solr分词且精确查询

solr分词且精确查询

1、定义字段停止tomcat在solr\home(例如D:\data\solr)下,找到需要的collection(如D:\data\solr\collection1),在collection1\conf\schema.xml文件中添加solr字段:<field name="CONTENT" type="text" indexed="true" stored="true" /><field name="text" type="string" indexed="true" />2、定义字段类型“text”<fieldType name="text" class="solr.TextField"><analyzer type="index" ><tokenizer class="solr.StandardTokenizerFactory"/><filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt"/><filter class="solr.WordDelimiterFilterFactory"generateWordParts="1"generateNumberParts="1"catenateWords="1"catenateNumbers="1"catenateAll="0"/><filter class="solr.LowerCaseFilterFactory"/><filter class="solr.RemoveDuplicatesTokenFilterFactory"/></analyzer><analyzer type="query" ><tokenizer class="solr.StandardTokenizerFactory"/><!--<tokenizer class="solr.StandardTokenizerFactory"/>--><filter class="solr.LowerCaseFilterFactory"/><filter class="solr.RemoveDuplicatesTokenFilterFactory"/></analyzer></fieldType>3、启动tomcat4、coding中使用solr查询语句" CONTENT:\"" + keyword + "\" "。

Solr搜索文档说明

Solr搜索文档说明

Solr使用教程目录一、软件版本 (2)二、安装教程 (2)1、Solr安装教程 (2)2、solr环境搭建 (4)3、业务字段的实际配置 (7)4、dataimport 导入数据库数据 (8)5、solrj的使用 (10)6、电商平台的应用 (14)一、软件版本Solr版本号:solr-5.5.5jdk版本号:jdk1.8以上Tomcat版本号:Tomcat8.0以上二、安装教程1、Solr安装教程1.创建solrhome以及solrcore(mysolrhome、mycore 名字可以任意指定)1.1在指定的目录下新建文件夹solrhome如:D:\mysolrhome1.2将solr-5.5.4\server\solr\solr.xml拷贝至D:\mysolrhome1.3在solrhome下新建文件夹solrcore如D:\mysolrhome\mycore1.4将solr-5.5.4\server\solr\configsets\basic_configs\conf完整目录拷贝至D:\mysolrhome\mycore\下2.部署到Tomcat2.1将solr-5.5.4\server\solr-webapp\webapp 完整目录复制到Apache Tomcat 8.0.27\webapps下并重命名为solr2.2在Apache Tomcat 8.0.27\webapps\solr\WEB-INF下新建classes文件夹2.3将solr-5.5.4/server/resource/log4j.properties 拷贝至上一步创建的classes2.4把solr-5.5.4/server/lib/ext/目录下的所有jar文件复制到Apache Tomcat 8.0.27/webapp/solr/WEB-INF/lib/中3.配置solrcore3.1修改Apache Tomcat 8.0.27-solr\webapps\solr\WEB-INF\web.xml 新增<env-entry>标签,将你的solrhome配置进去。

solr query函数

solr query函数

Solr Query函数是Solr搜索平台中的一个重要功能,它允许用户在Solr索引中执行查询操作,并返回与查询条件匹配的结果集。

以下是关于Solr Query函数的简要介绍和800字左右的说明:Solr Query函数概述Solr Query函数是一种用于执行搜索查询的函数,它允许用户在Solr索引中快速查找和检索数据。

通过使用Query函数,用户可以在Solr搜索平台上执行各种类型的查询,如全文搜索、基于字段的搜索、范围搜索等。

这些查询可以根据用户的需求进行定制,以提供精确和高效的搜索结果。

主要功能和应用场景Solr Query函数的主要功能包括执行各种类型的搜索查询、处理查询结果、返回匹配项和相关文档。

这些查询可以针对单个字段或多个字段进行,支持各种搜索运算符,如AND、OR、NOT等。

通过使用Query函数,用户可以在各种应用场景中快速找到所需数据,如网站搜索、内容管理系统、电子商务平台等。

优化和性能考虑在执行Solr Query函数时,需要注意优化查询性能和稳定性。

可以通过使用合适的查询语句、调整索引配置、优化硬件配置等手段来提高查询性能。

同时,还应该注意查询结果的准确性和可靠性,确保返回的匹配项和相关文档符合预期。

与其他工具和技术的集成Solr Query函数可以与其他工具和技术进行集成,以实现更高效和灵活的搜索解决方案。

例如,可以与其他搜索引擎平台(如Elasticsearch)进行集成,以实现跨平台的数据搜索和协作。

还可以与其他数据处理和分析工具(如Python、R语言等)结合使用,对搜索结果进行进一步的处理和分析。

总结Solr Query函数是Solr搜索平台中一个重要的功能,它允许用户在Solr索引中执行各种类型的查询操作,并返回与查询条件匹配的结果集。

通过使用Query函数,用户可以在各种应用场景中快速找到所需数据,并优化查询性能和稳定性。

与其他工具和技术的集成,可以实现更高效和灵活的搜索解决方案。

Solr查询参数及检索运算符

Solr查询参数及检索运算符
版权信息: 可以任意转载, 转载时请务必以超链接形式标明文章原文出处, 即下面的声明.
==============================================
[Solr查询参数说明备忘]
常用
--------------------------------------------
roam~0.8,检索返回相似度在0.8以上的记录。
5. 邻近检索,如检索相隔10个单词的”apache”和”jakarta”,”jakarta apache”~10
6. “^” 控制相关度检索,如检索jakarta apache,同时希望去让”jakarta”的相关度更加好,
那么在其后加上”^”符号和增量值,即jakarta^4 apache
•fq - (filter query)过虑查询,作用:在q查询符合结果中同时是fq查询符合的,
例如:q=mm&fq=date_time:[20081001 TO 20091031],找关键字mm,并且date_time是20081001到20091031之间的。
官方文档:/solr/CommonQueryParameters#head-6522ef80f22d0e50d2f12ec487758577506d6002
13. {} 不包含范围检索,如检索某时间段记录,不包含头尾
date:{200707 TO 200710}
14. \ 转义操作符,特殊字符包括+ - && || ! ( ) { } [ ] ^ ” ~ * ? : \
solr 查询参数说明
发表于:2009年3月25日 | 分类:Solr | 标签: query, solr | views(5,140)

SOLR中文教程

SOLR中文教程

SOLR中文帮助文档2010-10目录1概述 (4)1.1企业搜索引擎方案选型 (4)1.2Solr的特性 (4)1.2.1Solr使用Lucene并且进行了扩展 (4)1.2.2Schema(模式) (5)1.2.3查询 (5)1.2.4核心 (5)1.2.5缓存 (5)1.2.6复制 (6)1.2.7管理接口 (6)1.3Solr服务原理 (6)1.3.1索引 (6)1.3.2搜索 (7)1.4源码结构 (8)1.4.1目录结构说明 (8)1.4.2Solr home说明 (9)1.4.3solr的各包的说明 (10)1.5版本说明 (11)1.5.1 1.3版本 (11)1.5.2 1.4版本 (12)1.6分布式和复制Solr 架构 (12)2Solr的安装与配置 (13)2.1在Tomcat下Solr安装 (13)2.1.1安装准备 (13)2.1.2安装过程 (13)2.1.3验证安装 (14)2.2中文分词配置 (15)2.2.1mmseg4j (15)2.2.2paoding (19)2.3多核(MultiCore)配置 (22)2.3.1MultiCore的配置方法 (22)2.3.2为何使用多core ? (23)2.4配置文件说明 (23)2.4.1schema.xml (24)2.4.2solrconfig.xml (25)3Solr的应用 (29)3.1SOLR应用概述 (29)3.1.1Solr的应用模式 (29)3.1.2SOLR的使用过程说明 (30)3.2一个简单的例子 (30)3.2.1Solr Schema 设计 (30)3.2.2构建索引 (30)3.2.3搜索测试 (31)3.3搜索引擎的规划设计 (32)3.3.1定义业务模型 (32)3.3.2定制索引服务 (34)3.3.3定制搜索服务 (34)3.4搜索引擎配置 (34)3.4.1Solr Schema 设计(如何定制索引的结构?) (34)3.5如何进行索引操作? (36)3.5.1基本索引操作 (36)3.5.2批量索引操作 (37)3.6如何进行搜索 (39)3.6.1搜索语法 (39)3.6.2排序 (42)3.6.3字段增加权重 (42)3.6.4Solr分词器、过滤器、分析器 (42)3.6.5Solr高亮使用 (46)4SolrJ的用法 (46)4.1搜索接口的调用实例 (46)4.2Solrj的使用说明 (47)4.2.1Adding Data to Solr (47)4.2.2Directly adding POJOs to Solr (49)4.2.3Reading Data from Solr (51)4.3创建查询 (51)4.4使用SolrJ 创建索引 (52)4.5Solrj包的结构说明 (53)4.5.1CommonsHttpSolrServer (53)4.5.2Setting XMLResponseParser (53)4.5.3Changing other Connection Settings (53)4.5.4EmbeddedSolrServer (54)5Solr的实际应用测试报告 (54)5.1线下压力测试报告 (54)5.2线上环境运行报告 (54)6solr性能调优 (55)6.1Schema Design Considerations (55)6.1.1indexed fields (55)6.1.2stored fields (55)6.2Configuration Considerations (55)6.2.1mergeFactor (55)6.2.2mergeFactor Tradeoffs (56)6.3Cache autoWarm Count Considerations (56)6.4Cache hit rate(缓存命中率) (56)6.5Explicit Warming of Sort Fields (56)6.6Optimization Considerations (56)6.7Updates and Commit Frequency Tradeoffs (56)6.8Query Response Compression (57)6.9Embedded vs HTTP Post (57)6.10RAM Usage Considerations(内存方面的考虑) (57)6.10.1OutOfMemoryErrors (57)6.10.2Memory allocated to the Java VM (57)7FAQ (58)7.1出现乱码或者查不到结果的排查方法: (58)概述企业搜索引擎方案选型由于搜索引擎功能在门户社区中对提高用户体验有着重在门户社区中涉及大量需要搜索引擎的功能需求,目前在实现搜索引擎的方案上有集中方案可供选择:基于Lucene自己进行封装实现站内搜索。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档