SOLR - 技术教程文章

Solr5.0源码分析-SolrDispatchFilter【代码】【图】

年初,公司开发法律行业的搜索引擎。当时,我作为整个系统的核心成员,选择solr,并在solr根据我们的要求做了相应的二次开发。但是,对solr的还没有进行认真仔细的研究。最近,事情比较清闲,翻翻solr的源码,加深对solr的认识。在博客园上看到Ryan的Solr4.8.0源码分析(http://www.cnblogs.com/rcfeng/),跟着前人的脚步学习一下,并把5.0版本改动后的源码做一点补充。有什么不妥的地方,请Ryan谅解,或者联系我 QQ:503172601  ...

solr(一): 整合 tomcat【图】

前面 lucene 初探 都是为了solr打基础的. 虽然lucene 的filter 没有涉及, 但是打基础, 差不多够用了.一. solr 和 lucene 的区别这里我就用自己的理解来说了, 可能不全, 但是应该够用了, 网上能搜到官方一点的.首先, solr 是基于 lucene的. 就像是 springmvc 基于 servlet 一样. 但是solr 对lucene进行了扩展和优化.其次, lucene是一套检索引擎工具包, 并不是一套完整的全文检索引擎, 目的是提供一个工具包, 让开发者能很方便的在系...

Solr分组聚合查询之Facet

摘要: Solr的分组聚合是一个笼统的概念,目的就是把查询结果做分类,有多种方式可以做到很类似的结果。也正是由于它们的不同表现,可以适合于多种场景。何为FacetFacet是一种手段,用来将搜索结果分类,它并不会修改查询结果信息,只是给分类后的结果加上了每一项的数量值。我们可以用facet来做导航栏,引导用户更精确地查找信息。一般参数参数说明facet布尔值,设置为true,表示开启facetfacet.query指定查询语句facet布尔值,默...

Solr4.7.1中配置中文分词器【图】

1、SmartChineseAnalyzer (1)将lucene-analyzers-smartcn-4.7.1.jar添加到tomcat/webapps/solr/WEB-INF/lib文件中 (2)编辑solr主目录中conf/schema.xml文件,在<types></types>之间添加如下定义:650) this.width=650;" src="/upload/getfiles/default/2022/11/16/20221116011706667.jpg" title="10.png" /> (3)为了测试,将schema.xml中<field name="author">的type类型改为text_zh650) this.width=650;" src="/upload/g...

Solr4.8.0源码分析(23)之SolrCloud的Recovery策略(四)【代码】

Solr4.8.0源码分析(23)之SolrCloud的Recovery策略(四) 题记:本来计划的SolrCloud的Recovery策略的文章是3篇的,但是没想到Recovery的内容蛮多的,前面三章分别介绍了Recovery的原理和总体流程,PeerSync策略,Replication策略。本章主要介绍我在实际生产环境中碰到的recovery的几个问题,以及前面漏下的几个点。一. 日志中多次出现"Stopping recovery for zkNodeName= ..." 我在公司的生产环境中总是会看到连续多次出现 " ...

Solr常见异常

1、RemoteSolrException: Expected mime type application/octet-stream but got text/html现象:SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder". SLF4J: Defaulting to no-operation (NOP) logger implementation SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details. Exception in thread "main" org.apache.solr.client.solrj.impl.HttpSolrServer$RemoteSolrException: Ex...

Solr4.7.0连接PostgreSQL【代码】【图】

1.把PostgreSQL的Jar包 例如:postgresql-9.1-901-1.jdbc4.jar 或其他版本  放到D:\apache-tomcat-7.0.57\webapps\solr\WEB-INF\lib下2.然后在tomcat-solr\collection1\conf下新建一个配置文件:data-config.xml,然后在本目录下编辑配置文件:solrconfig.xml  找到很多个requestHandler节点,在最下面增加:<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler"><lst name="def...

Solr使用入门指南【代码】

本文转自 http://chuanliang2007.spaces.live.com/blog/cns!E5B7AB2851A4C9D2!499.entry?wa=wsignin1.0 因为搜索引擎功能在门户社区中对提高用户体验有着重在门户社区中涉及大量须要搜索引擎的功能需求,眼下在实现搜索引擎的方案上有集中方案可供选择:1. 基于Lucene自己进行封装实现站内搜索。工作量及扩展性都较大,不採用。2. 调用Google、Baidu的API实现站内搜索。同第三方搜索引擎绑定太死,无法满足后期业务扩展须要,临时不...

跟益达学Solr5之solrconfig.xml配置详解【图】

? ? ? ? ? solrconfig.xml配置文件中包含了很多solr自身配置相关的参数,solrconfig.xml配置文件示例可以从solr的解压目录下找到,如图:?用文本编辑软件打开solrconfig.xml配置,你将会看到以下配置内容:<?xml version="1.0" encoding="UTF-8" ?> <!--Licensed to the Apache Software Foundation (ASF) under one or morecontributor license agreements. See the NOTICE file distributed withthis work for additional inform...

Nutch 2.2+MySQL+Solr4.2实现网站内容的抓取和索引【代码】【图】

原文地址: http://blog.sina.com.cn/s/blog_3c9872d00101p4f0.htmlNutch 2.2.1发布快两月了,该版本与Nutch之前版本相比,有较大变化,特别是与MySQL联合应用的安装和配置过程有不少地方容易出错。本人在安装过程中也遇到了不少麻烦,大多问题通过baidu和google也没有找到解决方法,自己只能通过看代码和分析日志并试错,最终搞定了所遇到的各种问题,现将重要安装和配置过程整理如下。1. MySQL数据库配置l my.ini配置分别在[cl...

Solr4.8.0源码分析(20)之SolrCloud的Recovery策略(一)【代码】【图】

Solr4.8.0源码分析(20)之SolrCloud的Recovery策略(一)题记: 我们在使用SolrCloud中会经常发现会有备份的shard出现状态Recoverying,这就表明SolrCloud的数据存在着不一致性,需要进行Recovery,这个时候的SolrCloud建索引是不会写入索引文件中的(每个shard接受到update后写入自己的ulog中)。关于Recovery的内容包含三篇,本文是第一篇介绍Recovery的原因以及总体流程。1. Recovery的起因 Recovery一般发生在以下三个时候...

我与solr(六)--solr6.0配置中文分词器IK Analyzer【代码】【图】

转自:http://blog.csdn.net/linzhiqiang0316/article/details/51554217,表示感谢。 由于前面没有设置分词器,以至于查询的结果出入比较大,并且无法进行正确的高亮显示。现在配置一下分词器来解决相关问题。 solr6.0中进行中文分词器IK Analyzer的配置和solr低版本中最大不同点在于IK Analyzer中jar包的引用。一般的IK分词jar包都是不能用的,因为IK分词中传统的jar不支持solr6.0这个高版本的,所以就会发送运行错误的界面。下面...

solr查询

1.根据字段查询:http://www.360doc.com/content/14/0306/18/203871_358295621.shtml2.模糊查询:http://www.tuicool.com/articles/mYvm63原文:http://www.cnblogs.com/zrp2013/p/4463539.html

Solr基础理论【排名检索】

一.排名检索  搜索引擎代表了基于查询,返回优先文档的一种方法。在关系型数据库的SQL查询中,表的一行要么匹配一个查询,要么不匹配,查询结果基于一列或多列排序。搜索引擎根据文档与查询匹配的程度为文档打分,并按降序返回结果。匹配程度的计算取决于多个因素,一般而言,文档得分越高意味着该文档与查询的相关性越强。  优点:    1.提供清晰的导航方式,把用户越需要的放在越靠前的位置。    2.智能化程度高,用...

基于tomcat的solr环境搭建(Linux)【代码】【图】

?? solr是基于lucene的一个全文检索服务器,提供了一些类似webservice的API接口,用户可以通过http请求solr服务器,进行索引的建立和索引的搜索。索引建立的过程:用户提交的文本会经过分词器进行分词,分词后的关键字会存到索引库里,索引库是关键字和目标文档的映射集。索引搜索的过程:用户提交的搜索文本也是会经过分析器,得到的关键字会去索引库查询对应的目标文档并返回给客户端,采用的是权重排序算法。 1.solr的安装2.中...

Solr中schema.xml的Field介绍【代码】

Field详解 <field name="id" type="string" indexed="true" stored="true" multiValued="true"/>name: 指定域的名称(自定义)type: 指定域的类型indexed: 是否索引  是: (将分好的次进行索引,索引的目的,就是为了搜索)  否: 不索引,也就是不对该field域搜索。stored: 是否存储  是:将field中的内容存储到文档中。存储目的就是为了搜索显示取值用。  否:不将field域中的内容存储到文档中,并且搜索页面...

ElasticSearch(ES)和solr的关系和区别【图】

可以参考这篇文章:http://www.cnblogs.com/chowmin/articles/4629220.html Solr 2004年诞生(当时是Solar)。ElasticSearch 2010年诞生。ES更加新。 下面文字有误,其实是在不断动态添加。 综上所述,Solr的架构不适合实时搜索的应用。 Elasticsearch 与 Solr 的比较总结二者安装都很简单;Solr 利用 Zookeeper 进行分布式管理,而 Elasticsearch 自身带有分布式协调管理功能;Solr 支持更多格式的数据,而 Elasticsearch 仅支...

solr 7.7.0配置中文分词器的数据类型【代码】

1<dynamicField name="*_is" type="pints" indexed="true" stored="true"/> 2<dynamicField name="*_s" type="string" indexed="true" stored="true"/> 3<dynamicField name="*_ss" type="strings" indexed="true" stored="true"/> 4<dynamicField name="*_l" type="plong" indexed="true" stored="true"/> 5<dynamicField name="*_ls" type="plongs" indexed="true" stored="true"/> 6<dynamicField name="*_txt"...

solr 查询

solr 查询参数说明 常用 q - 查询字符串,必须的。 fl - 指定返回那些字段内容,用逗号或空格分隔多个。 start - 返回第一条记录在完整找到结果中的偏移位置,0开始,一般分页用。rows - 指定返回结果最多有多少条记录,配合start来实现分页。 sort - 排序,格式:sort=<field name>+<desc|asc>[,<field name>+<desc|asc>]… 。示例:(inStock desc, price asc)表示先 “inStock” 降序, 再 “price” 升序,默认是相关性降序。...

Solr搜索引擎入门知识汇总

1.技术选型,为什么用solr而不用lucene,或者其他检索工具lucene:需要开发者自己维护索引文件,在多机环境中备份同步索引文件很是麻烦Lucene本质上是搜索库,不是独立的应用程序。而Solr是。 Lucene专注于搜索底层的建设,而Solr专注于企业应用。 Lucene不负责支撑搜索服务所必须的管理,而Solr负责。 一句话概括Solr: Solr是Lucene面向企业搜索应用的扩展其实相识的技术还有ElasticSearch,但是ES只支持json文件格式,需要靠第三方插...

第二步solr配置中文分词IK Analyzer【代码】【图】

1、下载IK Analyzer 2012FF_hf1.zip解压如下图:注解(IK Analyzer 2012才能支持solr4.0以上的版本)下载地址:http://pan.baidu.com/s/1c0nMOhE650) this.width=650;" src="/upload/getfiles/default/2022/11/14/20221114115016278.jpg" title="QQ截图20150121150425.png" />2、添加IK Analyzer 2012 FF 中文分词:把IKAnalyzer2012_FF文件夹IKAnalyzer2012_FF.jar放在tomcat1.6,webapps\solr\WEB-INF\lib的目录下,修改E:\solr\...

solr 亿万级数据查询性能测试

废话不多说,我电脑配置 i7四核cpu 8G内存插入数据文档中有5个字段,其中有两个分词,一个int,一个date批量插入测试一次10万循环10次总共100万用时85秒批量插入测试一次10万循环100次总共1000万用时865秒插入性能还是不错的查询测试在12166454数据中(约等于一千两百万)总共占用硬盘2.8G查询分词字段 title:中国用时0.031秒非分词字段查询 view_count:1 用时 0.030秒范围查询 view_count:[0 TO 1000] 用时0.125秒上面这些查询第二...

solr特点五: MoreLikeThis(查找相似页面)【代码】

在 Google 上尝试一个查询,您会注意到每一个结果都包含一个 “相似页面” 链接,单击该链接,就会发布另一个搜索请求,查找出与起初结果类似的文档。Solr 使用MoreLikeThisComponent(MLT)和 MoreLikeThisHandler实现了一样的功能。如上所述,MLT 是与标准 SolrRequestHandler集成在一起的;MoreLikeThisHandler与 MLT 结合在一起,并添加了一些其他选项,但它要求发布一个单一的请求。我将着重讲述 MLT,因为使用它的可能性更大...

Solr实现SQL的查询语句【代码】

http://www.aboutyun.com/thread-7742-1-1.html//查询 http://localhost/order/select?q=item_main_title:澳洲&wt=json&indent=true&fl=id,order_number,src,src_orderhttp://localhost/order/select?q=*:*&wt=json&indent=true&fq=order_date:[1441555200000 TO *]SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd‘T‘HH:mm:ss‘Z‘"); String time = "lostTime:["+sdf.format(new Date())+" TO "+sdf.format(new Dat...

solr+采集程序合并搜索服务器

需求:1,从数据库中获取目标url,用爬虫程序获取页面标题正文,加入solr服务器;2,solr服务器提供前台做查询服务;3,solrj做客户端提交数据。note:曾考虑为什么用solr不用关系型数据库,大数据文本搜索以及分词,solr搜索效率比mysql更高。STEP:1 下载solr3.4.0:http://archive.apache.org/dist/lucene/solr/3.4.0/ 生产环境使用该版本(现最新版本5.3)STEP:2 http://blog.csdn.net/xiaoyu411502/article/details/44834...

JAVAEE——宜立方商城08:Zookeeper+SolrCloud集群搭建、搜索功能切换到集群版、Activemq消息队列搭建与使用【代码】【图】

1. 学习计划1、solr集群搭建2、使用solrj管理solr集群3、把搜索功能切换到集群版4、添加商品同步索引库。a) Activemqb) 发送消息c) 接收消息 2. 什么是SolrCloud SolrCloud(solr 云)是Solr提供的分布式搜索方案,当你需要大规模,容错,分布式索引和检索能力时使用 SolrCloud。当一个系统的索引数据量少的时候是不需要使用SolrCloud的,当索引量很大,搜索请求并发很高,这时需要使用SolrCloud来满足这些需求。 SolrCloud是基于Sol...

solr添加中文IK分词器,以及配置自定义词库【图】

Solr是一个基于Lucene的Java搜索引擎服务器。Solr 提供了层面搜索、命中醒目显示并且支持多种输出格式(包括XML/XSLT 和 JSON 格式)。它易于安装和配置,而且附带了一个基于 HTTP 的管理界面。Solr已经在众多大型的网站中使用,较为成熟和稳定。Solr 包装并扩展了 Lucene,所以Solr的基本上沿用了Lucene的相关术语。更重要的是,Solr 创建的索引与 Lucene 搜索引擎库完全兼容。通过对Solr 进行适当的配置,某些情况下可能需要进行...

solr 服务器搭建(Linux版)

1.下载访问linux工具 securcrt 链接:https://pan.baidu.com/s/1zTwzmnzUmnwbKUCNHCLN1g 密码:kpyg2.下载所需的 jdk solr tomcat 链接:https://pan.baidu.com/s/1j32EHEh2peCntzLWBP54Ww 密码:mg4a3.使用securcrt 进入 linux 4.上传 jdk solr tomcat 到服务器根目录5.创建目录 sudo mkdir /usr/java6.移动jdk 到java 目录 sudo mv jdk-7u55-linux-i586.tar.gz /usr/java7.解压 jdk sudo tar -zxvf jdk-7u55-li...

Solr入门之(8)中文分词器配置【代码】【图】

Solr中虽然提供了一个中文分词器<SPAN style=‘font-family: "Times New Roman";‘>,但是效果很差 "Times New Roman";‘>,可以使用"Times New Roman";‘>IKAnalyzer或"Times New Roman";‘>Mmseg4j 或其他中文分词器。一、IKAnalyzer分词器配置:  1、下载<SPAN style=‘font-family: "Times New Roman";‘>IKAnalyzer(<SPAN style=‘font-family: "Times New Roman";‘>IKAnalyzer2012_u6)包<SPAN style=‘font-family: "...

solr scheme配置简介【代码】

solr 字段配置,和数据库数据索引配置  配置solr字段、  schema.xml 文件里配置  先讲解一下,里面的一些字段  1、 <types> ... </types> 表示类型,数据类型<fieldType name="string" class="solr.StrField" sortMissingLast="true" omitNorms="true"/> <fieldType name="boolean" class="solr.BoolField" sortMissingLast="true" omitNorms="true"/> <fieldtype name="binary" class="solr.BinaryField"/> <fieldType na...