solr

solr
solr

查询参数

名称描述

q 查询字符串,必须的。

fq filter query。使用Filter Query可以充分利用Filter Query Cache,提高检索性能。作用:在q查询符合结果中同时是fq 查询符合的,例如:q=mm&fq=date_time:[20081001 TO 20091031],找关键字mm,并且date_time是20081001到20091031之间的。

fl field list。指定返回结果字段。以空格“ ”或逗号“,”分隔。start 用于分页定义结果起始记录数,默认为0。

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

sort 排序,格式:sort=+[,

name>+]… 。示例:(inStock desc, price asc)表示先“inStock” 降序, 再“price” 升序,默认是相关性降序。

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

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

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

qt query type,指定查询使用的Query Handler,默认为“standard”。explainOther 设置当debugQuery=true时,显示其他的查询说明。

defType 设置查询解析器名称。

timeAllowed 设置查询超时时间。

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

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

version 查询语法的版本,建议不使用它,由服务器指定默认值。debugQuery 设置返回结果是否显示Debug信息。

6.2.2查询语法

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

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

1) Mandatory:查询结果中必须包括的(for example, only entry name containing the word make)

Solr/Lucene Statement:+make, +make +up ,+make +up +kiss

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

Solr/Lucene Statement:+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. 子表达式查询(子查询):可以使用“()”构造子查询。

示例:(make AND up) OR (french AND Kiss)

5.子表达式查询中阻止查询的限制:

示例:make (-up):只能取得make的查询结果;要使用make (-up *:*)查询make 或者不包括up的结果。

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

示例:entryNm:make AND entryId:3cdc86e8e0fb4da8ab17caed42f6760c

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

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

示例: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) 一般模糊查询:示例:make-believ~

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

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

示例:

1) 日期范围(ISO-8601 时间GMT):sa_type:2 AND

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, and MILLI (synonymous with MILLISECOND)可以被标志成日期。

示例:

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

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

6.2.3函数查询(Function Query)

函数查询可以利用numeric字段的值或者与字段相关的的某个特定的值的函数,来对文档进行评分。

1. 使用函数查询的方法

这里主要有三种方法可以使用函数查询,这三种s方法都是通过solr http接口的。

1) 使用FunctionQParserPlugin。ie: q={!func}log(foo)

2) 使用“_val_”内嵌方法

内嵌在正常的solr查询表达式中。即,将函数查询写在q这个参数中,这时候,我们使用“_val_”将函数与其他的查询加以区别。

ie:entryNm:make && _val_:ord(entryNm)

3) 使用dismax中的bf参数

使用明确为函数查询的参数,比如说dismax中的bf(boost function)这个参数。注意:bf这个参数是可以接受多个函数查询的,它们之间用空格隔开,它们还可以带上权重。所以,当我们使用bf这个参数的时候,我们必须保证单个函数中是没有空格出现的,不然程序有可能会以为是两个函数。

示例:

q=dismax&bf="ord(popularity)^0.5 recip(rord(price),1,1000,1000)^0.3

2. 函数的格式(Function Query Syntax)

目前,function query 并不支持a+b 这样的形式,我们得把它写成一个方法形式,这就是sum(a,b).

3. 使用函数查询注意事项

1) 用于函数查询的field必须是被索引的;

2) 字段不可以是多值的(multi-value)

4. 可以利用的函数(available function)

1) constant:支持有小数点的常量;例如:1.5 ;SolrQuerySyntax:_val_:1.5

2) fieldvalue:这个函数将会返回numeric field的值,这个字段必须是indexd 的,非multiValued的。格式很简单,就是该字段的名字。如果这个字段中没有这样的值,那么将会返回0。

3) ord:对于一个字段,它所有的值都将会按照字典顺序排列,这个函数返回你要查询的那个特定的值在这个顺序中的排名。这个字段,必须是非multiValued 的,当没有值存在的时候,将返回0。例如:某个特定的字段只能去三个值,“apple”、“banana”、“pear”,那么ord(“apple”)=1,ord(“banana”)=2,ord(“pear”)=3.需要注意的是,ord()这个函数,依赖于值在索引中的位置,所以当有文档被删除、或者添加的时候,ord()的值就会发生变化。当你使用MultiSearcher 的时候,这个值也就是不定的了。

4) rord:这个函数将会返回与ord相对应的倒排序的排名。

格式: rord(myIndexedField)。

5) sum:这个函数的意思就显而易见啦,它就是表示“和”啦。

格式:sum(x,1) 、sum(x,y)、sum(sqrt(x),log(y),z,0.5)

6) product:product(x,y,...)将会返回多个函数的乘积。格式:product(x,2)、product(x,y)

7) div:div(x,y)表示x除以y的值,格式:div(1,x)、div(sum(x,100),max(y,1))

8) pow:pow表示幂值。pow(x,y) =x^y。例如:pow(x,0.5) 表示开方

pow(x,log(y))

9) abs:abs(x)将返回表达式的绝对值。格式:abs(-5)、abs(x)

10) log:log(x)将会返回基数为10,x的对数。格式:log(x)、log(sum(x,100))

11) Sqrt:sqrt(x) 返回一个数的平方根。格式:sqrt(2)、sqrt(sum(x,100))

12) Map:如果x>=min,且x<=max,那么map(x,min,max,target)=target.如果x 不在[min,max]这个区间内,那么map(x,min,max,target)=x.

格式:map(x,0,0,1)

13) Scale:scale(x,minTarget,maxTarget) 这个函数将会把x的值限制在[minTarget,maxTarget]范围内。

14) query :query(subquery,default)将会返回给定subquery的分数,如果subquery与文档不匹配,那么将会返回默认值。任何的查询类型都是受支持的。可以通过引用的方式,也可以直接指定查询串。

例子:q=product(popularity, query({!dismax v='solr rocks'}) 将会返回popularity 和通过dismax 查询得到的分数的乘积。

q=product(popularity, query($qq)&qq={!dismax}solr rocks 跟上一个例子的效果是一样的。不过这里使用的是引用的方式

q=product(popularity, query($qq,0.1)&qq={!dismax}solr rocks 在前一个例子的基础上又加了一个默认值。

15) linear:inear(x,m,c)表示m*x+c ,其中m和c都是常量,x是一个变量也可以是一个函数。例如:linear(x,2,4)=2*x+4.

16) Recip:recip(x,m,a,b)=a/(m*x+b)其中,m、a、b是常量,x是变量或者一个函数。当a=b,并且x>=0的时候,这个函数的最大值是1,值的大小随着x 的增大而减小。例如:recip(rord(creationDate),1,1000,1000)

17) Max:max(x,c)将会返回一个函数和一个常量之间的最大值。

例如:max(myfield,0)

6.3高亮显示

我们经常使用搜索引擎,比如在baidu 搜索java ,会出现如下结果,结果中与关键字匹配的地方是红色显示与其他内容区别开来。

solr 默认已经配置了highlight 组件(详见SOLR_HOME/conf/sorlconfig.xml)。通常我出只需要这样请求http://localhost:8983/solr/ collection1 /select?

q=%E4%B8%AD%E5%9B%BD&start=0&rows=1&fl=content+path+&wt=xml& indent=true&hl=true&hl.fl=content

可以看到与比一般的请求多了两个参数"hl=true" 和"hl.fl= content " 。

"hl=true" 是开启高亮,"hl.fl= content " 是告诉solr 对name 字段进行高亮(如果你想对多个字段进行高亮,可以继续添加字段,字段间用逗号隔开,如"hl.fl=name,name2,name3")。高亮内容与关键匹配的地方,默认将会被"" 和"" 包围。还可以使用hl.simple.pre" 和"hl.simple.post"参数设置前后标签.

查询结果如下:

0

2

content path

true

0

中国

content

xml

true

1

E:\Reduced\IT\630.txt

本报讯中国银联股份有限公司和中国电信集团日前在北京签署全面战略合作协议。这标志着中国银联和中国电信将在通服务、信息增值服务、新型支付产品合作开发等领域建立全面合作伙伴关据悉,双方签署的全面战略合作协议主要内容是:中国银联将选择中国电作为通信信息服务的主要提供商,双方围绕提高中国银联内部通信的水平销售网络的服务水平开展全面、深入的合作;中国电信选择中国银联作为行卡转接支付服务的主要提供商,并围绕开发、推广新型支付终端产品和值服务开展全面合作。(辛华)

本报讯 中国银联股份有限公司和中国电信团日前在北京签署全面战略合作协议。这标志着中国银联和电信将在通信服务、信息增值服务、新型支付产品合作开发等领建立全面合作伙伴关系。据悉,双方签署

使用SolrJ方法基本一样也是设置这些个参数,只不过是SolrJ封装起来了,代码

如下:

SolrQuery query = new SolrQuery();

query.set("q","*.*");

query.setHighlight(true); // 开启高亮组件

query.addHighlightField("content");// 高亮字段

query.setHighlightSimplePre(PRE_TAG);// 标记

query.setHighlightSimplePost(POST_TAG);

QueryResponse rsp =server.query(query)

//…上面取结果的代码

//取出高亮结果

if (rsp.getHighlighting() != null) {

if (rsp.getHighlighting().get(id) != null) {//先通过结果中的ID到高亮集合中取出文档高亮信息Map> map = rsp.getHighlighting().get(id);//取出高亮片段

if (map.get(name) != null) {

for (String s : map.get(name)) {

System.out.println(s);

}

}

}

6.4拼写检查

首先配置solrconfig.xml,文件可能已经有这两个元素(如果没有添加即可),

需要根据我们自己的系统环境做些适当的修改。

class="solr.SpellCheckComponent">

text_spell

direct

spell

solr.DirectSolrSpellChecker

internal

0.5

2

1

5

2

0.01

direct

on

true

true

spellcheck

配置完成之后,我们进行一下测试,重启Solr后,访问如下链接

http://localhost:8983/solr/

collection1/spell?wt=xml&indent=true&spellcheck=true&spellcheck.q=%E4%B 8%AD%E5%9B%BD

0

0

1

0

3

beijing

使用SolrJ时也同样加入参数就可以

SolrQuery query = new SolrQuery();

query.set("q","*.*");

query.set("qt", "/spell");

QueryResponse rsp =server.query(query)

//…上面取结果的代码

SpellCheckResponse spellCheckResponse = rsp.getSpellCheckResponse();

if (spellCheckResponse != null) {

String collation = spellCheckResponse.getCollatedResult();

}

6.5检索建议

检索建议目前是各大搜索的标配应用,主要作用是避免用户输入错误的搜索词,同时将用户引导到相应的关键词搜索上。Solr内置了检索建议功能,它在Solr里叫做Suggest模块.该模块可选择基于提示词文本做检索建议,还支持通过针对索引的某个字段建立索引词库做检索建议。在诸多文档中都推荐使用基于索引来做检索建议,因此我们目前的实现也是采取该方案。

现在我们开始配置Suggest模块,首先在solrconfig.xml文件中配置Suggest 依赖的SpellChecker模块,然后再配置Suggest模块,所以这两个都需要配置。

string

suggest

org.apache.solr.spelling.suggest.Suggester

org.apache.solr.spelling.suggest.tst.TSTLookup text

0.0001

spellchecker

freq

true

true

suggest

true

false

10

true

suggest

配置完成之后,我们进行一下测试,重启Solr后,访问如下链接

http://localhost:8983/solr/

collection1/suggest?wt=xml&indent=true&spellcheck=true&spellcheck.q=%E4 %B8%AD%E5%9B%BD

0

4

4

0

2

中国队

中国证监会

中国足协

中国银行

使用SolrJ时也同样加入参数就可以

SolrQuery query = new SolrQuery();

query.set("q", token);

query.set("qt", "/suggest");

query.set("spellcheck.count", "10");

QueryResponse response = server.query(query);

SpellCheckResponse spellCheckResponse = response.getSpellCheckResponse();

if (spellCheckResponse != null) {

List suggestionList = spellCheckResponse.getSuggestion for (SpellCheckResponse.Suggestion suggestion : suggestionList) {

List suggestedWordList = suggestion.getAlternatives();

for (int i = 0; i < suggestedWordList.size(); i++) {

String word = suggestedWordList.get(i);

}

}

return results;

}

通过threshold参数来限制一些不常用的词不出现在智能提示列表中,当这个值设置过大时,可能导致结果太少,需要引起注意。目前主要存在的问题是使用freq排序算法,返回的结果完全基于索引中字符的出现次数,没有兼顾用户搜索词语的频率,因此无法将一些热门词排在更靠前的位置。这块可定制SuggestWordScoreComparator来实现,目前还没有着手做这件事情。

solr教程

Apache Solr 初级教程 (介绍、安装部署、Java接口、中文分词)Apache Solr 介绍 Solr 是什么? Solr 是一个开源的企业级搜索服务器,底层使用易于扩展和修改的Java 来实现。服务器通信使用标准的HTTP 和XML,所以如果使用Solr 了解Java 技术会有用却不是必须的要求。 Solr 主要特性有:强大的全文检索功能,高亮显示检索结果,动态集群,数据库接口和电子文档(Word ,PDF 等)的处理。而且Solr 具有高度的可扩展,支持分布搜索和索引的复制。 Lucene 是什么? Lucene 是一个基于 Java 的全文信息检索工具包,它不是一个完整的搜索应用程序,而是为你的应用程序提供索引和搜索功能。Lucene 目前是 Apache Jakarta 家族中的一个开源项目。也是目前最为流行的基于 Java 开源全文检索工具包。 目前已经有很多应用程序的搜索功能是基于 Lucene ,比如 Eclipse 帮助系统的搜索功能。Lucene 能够为文本类型的数据建立索引,所以你只要把你要索引的数据格式转化的文本格式,Lucene 就能对你的文档进行索引和搜索。 Solr VS Lucene Solr 与Lucene 并不是竞争对立关系,恰恰相反Solr 依存于Lucene ,因为Solr 底层的核心技术是使用Apache Lucene 来实现的,简单的说Solr 是Lucene 的服务器化。需要注意的是Solr 并不是简单的对Lucene 进行封装,它所提供的大部分功能都区别于Lucene 。 安装搭建Solr

安装Java 虚拟机 Solr 必须运行在Java1.5 或更高版本的Java 虚拟机中,运行标准Solr 服务只需要安装JRE 即可,但如果需要扩展功能或编译源码则需要下载JDK 来完成。可以通过下面的地址下载所需JDK 或JRE : ?OpenJDK (https://www.360docs.net/doc/202693695.html,/j2se/downloads.html) ?Sun (https://www.360docs.net/doc/202693695.html,/j2se/downloads.html) ?IBM (https://www.360docs.net/doc/202693695.html,/developerworks/java/jdk/) ?Oracle (https://www.360docs.net/doc/202693695.html,/technology/products/jrockit/index.html)安装步骤请参考相应的帮助文档。 安装中间件 Solr 可以运行在任何Java 中间件中,下面将以开源Apache Tomcat 为例讲解Solr 的安装、配置与基本使用。本文使用Tomcat5.5 解压版进行演示,可在下面地址下载最新版本https://www.360docs.net/doc/202693695.html,/download-55.cgi 安装Apache Solr 下载最新的Solr 本文发布时Solr1.4 为最新的版本,下文介绍内容均针对该版本,如与Solr 最新版本有出入请以官方网站内容为准。Solr官方网站下载地址: https://www.360docs.net/doc/202693695.html,/dyn/closer.cgi/lucene/solr/ Solr 程序包的目录结构 ?build :在solr 构建过程中放置已编译文件的目录。 ?client :包含了一些特定语言调用Solr 的API 客户端程序,目前只有Ruby 可供选择,Java 客户端叫SolrJ 在src/solrj 中可以找到。 ?dist :存放Solr 构建完成的JAR 文件、WAR 文件和Solr 依赖的JAR 文件。 ?example :是一个安装好的Jetty 中间件,其中包括一些样本数据和Solr 的配置信息。 o example/etc :Jetty 的配置文件。 o example/multicore :当安装Slor multicore 时,用来放置多个Solr 主目录。 o example/solr :默认安装时一个Solr 的主目录。 o example/webapps :Solr 的WAR 文件部署在这里。

拓薪教育-solr教程

全文检索技术Solr 讲师:任亮

1课程计划 1、站内搜索技术的选型 2、什么是Solr 3、Solr的安装及配置,solr整合tomcat。 4、Solr对索引库的维护,基于solr的后台管理界面 a)增加文档 b)删除文档 c)修改文档 5、Solr查询索引,基于solr的后台管理界面 6、Solr的客户端SolrJ a)索引的维护 b)索引的查询 7、综合案例,电商网站的搜索功能 2站内搜索技术的选型 1、Lucene实现站内搜索。开发工作量大,还要对索引库的维护投入大量的工作,索引的优化查询的优化,大并发量的考虑。不推荐使用。 2、可以使用搜索搜索引擎提供站内搜索功能。索引库放在搜索引擎上,不能维护。优点就非常简单。 3、solr技术,solr是基于lucene开发的一个全文检索服务器,提供了全套的全文检索解决方案。推荐使用的技术。 3什么solr 3.1 Solr的概念 Solr 是Apache下的一个顶级开源项目,采用Java开发,它是基于Lucene的全文搜索服务器。Solr提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展,并对索引、搜索性能进行了优化。 Solr可以独立运行,运行在Jetty、Tomcat等这些Servlet容器中,Solr 索引的实现方法很简单,用POST 方法向Solr 服务器发送一个描述Field 及其内容的XML 文档,Solr 根据xml文档添加、删除、更新索引。Solr 搜索只需要发送HTTP GET 请求,然后对Solr 返回Xml、json等格式的查询结果进行解析,组织页面布局。Solr不提供构建UI的功能,Solr提供了一个管理界面,通过管理界面可以查询Solr的配置和运行情况。

solr技术方案

Solr技术方案 一用户需求 以前的互动平台只能对固定表的固定字段做like这样的数据库层面的索引,性能低下,用户体验很差,很难满足业务提出的简化搜索的需求。 需求原型: 业界通用的做全站搜索的基本上两种: 1 选择googleAPI,百度API做。同第三方搜索引擎绑定太死,无法满足后期业务扩展需要,而且全站的SEO做的也不是很好,对于动态的很多ajax请求需要做快照,所以暂时不采用。 2 选择现有成熟的框架。

这里我们选择使用solr。 Solr是一个基于Lucene的Java搜索引擎服务器。Solr 提供了层面搜索、命中醒目显示并且支持多种输出格式(包括XML/XSLT 和JSON 格式)。它易于安装和配置,而且附带了一个基于HTTP 的管理界面。Solr已经在众多大型的网站中使用,较为成熟和稳定。Solr 包装并扩展了Lucene,所以Solr的基本上沿用了Lucene的相关术语。更重要的是,Solr 创建的索引与Lucene 搜索引擎库完全兼容。通过对Solr 进行适当的配置,某些情况下可能需要进行编码,Solr 可以阅读和使用构建到其他Lucene 应用程序中的索引。此外,很多Lucene 工具(如Nutch、Luke)也可以使用Solr 创建的索引。 这里我们主要需要以下几种功能: 1 可用性及成熟性。 2 中文分词。 3 词库与同义词的管理(比如我们使用最高的:股票代码)。 4 高亮显示。 5 方便的导入数据。 6 Facet的轻松配置 7 扩展性。 二Solr的体系结构 体系结构 Solr体系,功能模块介绍及配置。

以上是solr的架构图。具体应用时需要理解一下模块的作用及配置。 RequestHandler:接受请求,分发请求。另外也包含导入数据,如importhandler。UpdateHandlers –处理索引请求。 Search Components:作为handlder的成员变量。处理请求。 Facet:分类搜索 Tika:apache下处理文件的一个项目。 Filter,spelling :处理字符串 Http query/update Database/html importhandler 默认基本可以满足要求。如果不够则扩展相应的handler和component。

轻松使用SaltStack管理成千上万台服务器(入门教程)

目录树引言:一个”非专职运维人员“的烦恼 Salt快速入门 1. 安装配置 2. 安装管理端(master) 3. 安装被管理端(minion) 4. 接受minion的托管请求 5. 测试 Salt的强大功能 1. 批量操作(targeting) 2. 节点分组(nodegroups) 3. 命令执行(execution) 4. 节点信息(grains) 5. 配置管理(state) 6. 小结 Salt state实例解析 1. 目录结构 2. apache/init.sls 3. ssh/init.sls 4. ssh/server.sls 5. ssh/custom-server.sls 引言:一个”非专职运维人员“的烦恼加入到某证券公司的IT部门,尽管所在的部门挂了一个“研发部”的名字,但是我发现有大概40%的时间是在做运维工作。

这来自两种情况: 1. 自主开发的应用,需要持续的改进,不断的更新、发布、部署、调整配置,这不是运维部门喜欢的状态。 2. 软件商提供的“产品”无法满足运维部门的要求:无法通过简单的 Q&A 文档保证系统的正常运行,经常需要有一定技术能力的人员解决系统运行过程中各种稀奇古怪的问题。 这种情况下只能自己做一个“非专职运维人员”,需要频繁的登录各种服务器,执行一些命令来查看状态或者更改配置(包括配置文件的变更和软件包的安装部署)。很多操作都是不断的重复,日复一日,让人厌烦。 ”重复的工作应该交给程序去做“,所以我自己写过一些脚本。为了避免将脚本上传到几十台服务器并且不时进行更改,我使用Fabric来进行服务器的批量操作。 尽管避免了”批量的人工操作“,但我还是在进行”人工的批量操作“。远远没有实现自动管理。将有限的生命解放出来,投入到更有意义的编码工作是一个奔四程序员应有的追求,所以我又睁大红肿的眼睛,迷茫的搜索这个世界。 我发现了Puppet,Chef和CFEngine,但是并不满意。直到我发现了Salt,我的眼前一亮:这正是我所需要的东西。 如果说Salt有什么独特之处打动了我,那就是: 简单:可能是源于python的简约精神,Salt的安装配置和使用简单到了令人发 指的地步。任何稍有经验的linux使用者可以在10分钟之内搭建一个测试环境并跑通一个例子(相比之下,puppet可能需要30--60分钟)。 高性能:Salt使用大名鼎鼎的ZeroMQ作为通讯协议,性能极高。可以在数秒钟之内完成数据的传递 可伸缩:基于ZeroMQ通信,具备很强的扩展性;可以进行分级管理,能够管理分布在广域网的上万台服务器。 尽管twitter、豆瓣、oracle、等著名网站的运维团队都在使用puppet,但是我相信,他们切换到salt只是一个时间问题。毕竟不是所有的人都喜欢操纵傀儡(puppet),但是谁又能离开盐(salt)呢? 关于Salt和Puppet的对比,可以参考这里,或者看看中文版。

zheng-环境搭建及系统部署文档20170213(三版)

1Een 项目描述 基于Spring+SpringMVC+Mybatis分布式敏捷开发系统架构:内容管理系统(门户、博客、论坛、问答等)、统一支付中心(微信、支付宝、在线网银等)、用户权限管理系统(RBAC细粒度用户权限、统一后台、单点登录、会话管理)、微信管理系统、第三方登录系统、会员系统、存储系统 https://www.360docs.net/doc/202693695.html,/zhengAdmin/src/ 2项目组织结构

3项目模块图 4项目使用到的技术4.1后端技术 Spring Framework SpringMVC: MVC框架

Spring secutity|Shiro: 安全框架 Spring session: 分布式Session管理MyBatis: ORM框架 MyBatis Generator: 代码生成 Druid: 数据库连接池 Jsp|Velocity|Thymeleaf: 模板引擎ZooKeeper: 协调服务 Dubbo: 分布式服务框架 TBSchedule|elastic-job: 分布式调度框架Redis: 分布式缓存数据库 Quartz: 作业调度框架 Ehcache: 缓存框架 ActiveMQ: 消息队列 Solr|Elasticsearch: 分布式全文搜索引擎FastDFS: 分布式文件系统 Log4J: 日志管理 Swagger2: 接口文档 sequence: 分布式高效ID生产 https://www.360docs.net/doc/202693695.html,/yu120/sequence AliOSS|Qiniu: 云存储 Protobuf|json: 数据传输 Jenkins: 持续集成工具 Maven|Gradle: 项目构建管理

非常经典的solr教程

非常经典的solr教程,照着上面做完全能成功! duogemajia Solr 3.5 入门配置应用 机器上已安装: Tomcat 6.0 jdk1.7 mysql 5.0 1 访问https://www.360docs.net/doc/202693695.html,/dyn/closer.cgi/lucene/solr , 在这个网址里选择一个路径, 下载solr 3.5 的版本 2 solr3.5 在本机解压缩以后, 把apache-solr-3.5.0\example\webapps 目录下 的solr.war 文件拷贝到Tomcat 6.0 的webapps 目录下 3 在Tomcat 6.0\webapps\solr 目录里新建一个文件夹conf 4 把solr3. 5 本机解压缩文件夹apache-solr-3.5.0\example 下的multicore 文件夹 考本到Tomcat 6.0\webapps\solr\conf 目录下 5 在Tomcat 6.0\conf\Catalina\localhost 目录下新建一个solr.xml 文件, 里面的内容如下 6 访问你的solr 项目localhost:8080/solr 会显示出两个core , solr 正常运行 7 配置分词, 使用的是mmseg4j 和搜狗词库, 下载地址: https://www.360docs.net/doc/202693695.html,/p/mmseg4j/ , https://www.360docs.net/doc/202693695.html,/p/mmseg4j/downloads/ detail?name=data.zip&can=2&q 8 把本地下载的mmseg4j 解压缩, 把里面的mmseg4j-all-1.8.5.jar 文件拷贝到Tomcat 6.0\webapps\solr\WEB-INF\lib 目录下 9 在Tomcat 6.0\webapps\solr 目录下新建一个dic 文件夹, 把新下载的词库拷贝到dic 目录下 10 在\Tomcat 6.0\webapps\solr\conf\multicore\core0\conf\schema.xml 文件的types 节点里添加如下节点:

SolrCloud使用教程、原理介绍 我心动了

SolrCloud使用教程、原理介绍 发布于2013 年 8 月 24 日,属于搜索分类,7,446 浏览数 SolrCloud 是基于 Solr 和 Zookeeper 的分布式搜索方案,是正在开发中的 Solr4.0 的核心组件之一,它的主要思想是使用 Zookeeper 作为集群的配置信息中心。 它有几个特色功能:①集中式的配置信息②自动容错③近实时搜索④查询时自动负载均衡。

下面看看 wiki 的文档: 1、SolrCloud SolrCloud 是指 Solr 中一套新的潜在的分发能力。这种能力能够通过参数让你建立起一个高可用、 容错的 Solr 服务集群。当你需要大规模,容错,分布式索引和检索能力时使用 SolrCloud(solr 云)。 看看下面“启动”部分内容,快速的学会怎样启动一个集群。后面有 3 个快速简单的例子, 它们展现怎样启动一个逐步越来越复杂的集群。检出例子之后,需要翻阅后面的部分了解 更加细节的信息。 2、关于 SolrCores 和 Collections 的一点儿东西 对于单独运行的 Solr 实例,它有个东西叫 SolrCore(Solr.xml 中配置的),它是本质上独立的 索引块。如果你打算多个索引块,你就创建多个 SolrCores。当同时部署SolrCloud 的时, 独立的索引块可以跨越多个 Solr 实例。这意味着一个单独的索引块能由不同服务器设备上多个 SolrCore 的索引块组成。我们把组成一个逻辑索引块的所有 SolrCores 叫做一个独立 索引块儿(collection)。一个独立索引块是本质上一个独立的跨越多个 SolrCore 索引块的索 引块,同时索引块尽可能随着多余的设备进行缩放。如果你想把你的两个 SolrCore Solr 建 立成 SolrCloud,你将有 2 个独立索引块,每个有多个独立里的 SolrCores 组成。 3、启动 下载 Solr4-Beta 或更高版本。 如果你还没了解,通过简单的Solr 指南让自己熟悉Solr。注意:在通过指南了解云特点前,重设所有的配置和移除指南的文档.复制带有预先存在的 Solr 索引的例子目录将导致文档计数关闭Solr 内嵌使用了Zookeeper 作为集群配置和协调运作的仓储。协调考虑作为一个包 含所有 Solr 服务信息的分布式文件系统。 如果你想用一个其他的而不是 8983 作为 Solr 端口,去看下面’ Parameter Reference’部分下 的关于solr.xml 注解 例 A:简单的 2 个 shard 集群 这个例子简单的创建了一个代表一个独立索引块的两个不同的 shards 的两个 solr 服务组成

基于solr的异构数据融合检索技术_梁艳

基于solr的异构数据融合检索技术 梁 艳1 刘双广1 劳定雄2 (1.重庆邮电大学通信与信息工程学院,重庆 400065;2.高新兴科技集团股份有限公司研发中心,广东 广州 510530) 摘 要:针对企业异构数据融合检索的需求,介绍了异构数据整合的常用方法和企业级搜索服务器solr的基本功能,结合xml异构数据整合、中文分词技术和友好的用户界面搭建了基于solr的异构数据融合检索系统,实现了对xml文件的索引和检索,为异构数据融合检索提供了解决方案。 关键词:solr;异构数据;XML;融合;检索 The Retrieval Technology of Heterogeneous Data Integration Based on Solr Abstract:For the need of enterprise heterogeneous data integration retrieval, this thesis introduces the common method of heterogeneous data integration and the basic function of Solr which is enterprise search server. Combined the XML heterogeneous data integration with the Chinese word segmentation technology and the friendly user interface,this paper built the heterogeneous data integration retrieval system based on Solr, realized the indexing and retrieval of XML document and provided solutions for heterogeneous data integration retrieval. Key words:solr; Heterogeneous data;xml;integration;retrieval 作者简介: 梁艳(1988-),女,汉族,重庆市潼南县人,重庆邮电大学硕士在读,研究方向:信息检索;刘双广(1965-),男,汉族,广东省广州人,重庆邮电大学硕士生导师,EMBA,研究方向:物联网;劳定熊(1976-),汉族,男,广东省广州人,高新兴科技集团股份有限公司架构师,硕士,研究方向:云计算。 1 背景 互联网技术的发展,使得信息数据爆炸式增长。特别是在企业信息中,其非结构数据占到了增长数据的80%,包括PDF、word文档,图像、音频和视频等。企业在不同的应用平台拥有不同的检索系统,这给用户检索信息带来了诸多不便。如何构建一个统一的检索平台,使得用户在海量的异构数据中实现统一检索,一直是研究人员研究的热点。 2 异构数据融合技术 异构数据是指数据格式不同,内容不一,描述不同内容的数据,包括结构化数据(如数据库)、半结构化数据(如HTML、 XML)和非结构化数据(如文本、图片)[1] 。数据的统一访问的基 础在于数据融合集成,目前对于解决异构数据融合的研究有数据仓库、数据抽取和数据转换。 数据仓库是指不同来源的数据在进入数据仓库之前,转换为统一的格式为复杂的查询提供统一的视图,实现数据的统一访问[2]。其代表性的成果是ETL集成工具,ETL [3]允许提取、转换和加载异构数据到数据仓库中和实现数据迁移任务。但数据仓库主要是针对不同数据库中的结构化数据的整合,很难应用于非结构化数据的集成、实现非结构化数据的统一访问[4]。 数据抽取是指将无结构的的文本结构化处理,即输入原始文本输出固定格式[5]。部分数据库管理系统自带有数据抽取工具,能够低成本的解决异构数据整合问题,但在实际应用中有一定的局限性。 XML整合是数据转换技术的代表,即将各种异构数据转换为统一的xml文本格式,实现异构数据整合。XML(eXtensible Markup Language,扩展标记语言)是互联网下的一个关键技术,它能很好地实现来源极端异构的数据描述和传输。XML能独立于应用系统,不受任何特殊的软件或者硬件平台限制,并且这些数据能重复使用,简单易懂,成为交换各种结构化、半结构化、非结构化信息的良好方式[6]。因此,采用XML文档作为底层数据的融合与集成技术,实现了异构数据源间数据共享并且更有效地利用信息资源。XML整合数据的一般模型为下图一所示: 3 solr搜索引擎 3.1 solr简介 Solr (Searching on Lucene Replication)[7] 是Apache 软件基金会下的一个开源子项目,它是一个高性能的、采用java5开发的、基于lucene全文搜索库的企业搜索服务器。提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展并对查询性能进行了优化,并且提供了一个完善的功能管理界面,是一款非常优秀的全文搜索引擎。 3.2 solr体系架构 Solr的系统结构图[8]如图2所示,solr主要分为3层,solr 在lucene的基础上进行了大量的改进,其中solr的底层为对lucene一些功能的改进封装。中间层为solr的核心层,搜索引 擎的主要功能都是在这一层实现的,包括对文档进行分析、建立索引、配置solr运行文件和保存索引文件等。最顶层包括HTTP接口,负责通过HTTP传入和返回XML文档;管理界面和索引更新模块。另外,索引复制功能是一个独立的模块,它是由一个主索引和多个从索引构成,从索引从主索引复制索引,主索引负 图一 xml数据整合模型

美团O2O的CRM系统架构设计教程文件

美团O2O的CRM系统架构设计 众所周知,O2O(Online To Offline),是指将线下的商务机会与互联网结合,让互联网成为线下交易的前台。但是O2O平台自身并不提供用户最终享受的商品、服务,这些服务都来自线下商户提供的服务,换句话说平台只是服务的搬运工。 线上风景固然靓丽,但是并不像看到的那样风光,就拿“团购”来讲,美团、点评、百度糯米的APP在功能布局、操作体验等方面差异化越来越小,这样极大的降低了用户使用门槛,作为理性逐利的C端用户来讲,最长见的结果谁便宜就会用谁。那么问题来了,如何在这场纷争中抓住用户,最终胜出呢? 对,线下能力! 线下的能力包括线下资源的控制能力和线下服务品质的控 制能力。线下能力最终决定了平台能够提供给线上用户的服务和服务品质,只有能够提供丰富、实惠、高品质的服务,来能够帮助平台在线上赢得用户,取得成功。美团之所以成功,就在于强大的地面、运营团队所建立起的线下能力。而这些团队背后所依赖的,就是我们称之为秘密武器的B端产品。CRM,就是其中之一。CRMCRM系统,立足于帮助美团解决线下资源控制的能力。CRM通过商家关系的建立和维系客户

关系,同时借助于新技术、和方法改进来提升工作效率,从而达成链接美团和商户的使命! 接下来我会从两大维度四个方面来介绍一下美团CRM的特点:合作篇 销售(建立合作)、运营(持续合作) 效能篇 信息之战(数据)、移动办公(场景支持)销售(建立合作)众所周知,在CRM系统中线索是非常重要的资源,提供丰富、有价值的线索是CRM系统的首要职责。在美团,线索对象通常指商家门店(POI),通过对门店关键人物(KP)的拜访和机会转化,最终为美团提供合作商家(可上单的商家)。 线索通过多种渠道获得: 网上数据爬取(初期) BD(业务拓展人员)采集 商家创建 众包采集 美团数据中心(MDC)将信息收集完成后,POI将会进入审核环节,未经校准的POI会经由人工(运营审核、众包采集)、机器审核进行校准、去重工作,通过反向拉取、消息队列通知等方式,线索数据最终会同步到CRM。 基于美团的大数据服务,在CRM中的POI数据将会被标记分类(300大商家、头部商家、竞对在线、券、多、免)和信息

Solr总结-吐血总结

Solr调研总结 1. Solr 是什么? Solr它是一种开放源码的、基于Lucene Java 的搜索服务器,易于加入到Web 应用程序中。Solr 提供了层面搜索(就是统计)、命中醒目显示并且支持多种输出格式(包括XML/XSLT 和JSON等格式)。它易于安装和配置,而且附带了一个基于HTTP 的管理界面。可以使用Solr 的表现优异的基本搜索功能,也可以对它进行扩展从而满足企业的需要。Solr的特性包括: ?高级的全文搜索功能 ?专为高通量的网络流量进行的优化 ?基于开放接口(XML和HTTP)的标准 ?综合的HTML管理界面 ?可伸缩性-能够有效地复制到另外一个Solr搜索服务器 ?使用XML配置达到灵活性和适配性 ?可扩展的插件体系 2. Lucene 是什么? Lucene是一个基于Java的全文信息检索工具包,它不是一个完整的搜索应用程序,而是为你的应用程序提供索引和搜索功能。Lucene 目前是Apache Jakarta(雅加达)家族中的一个开源项目。也是目前最为流行的基于Java开源全文检索工具包。目前已经有很多应用程序的搜索功能是基于Lucene ,比如Eclipse 帮助系统的搜索功能。Lucene能够为文本类型的数据建立索引,所以你只要把你要索引的数据格式转化的文本格式,Lucene 就能对你的文档进行索引和搜索。

3. Solr vs Lucene Solr与Lucene 并不是竞争对立关系,恰恰相反Solr 依存于Lucene,因为Solr底层的核心技术是使用Lucene 来实现的,Solr和Lucene的本质区别有以下三点:搜索服务器,企业级和管理。Lucene本质上是搜索库,不是独立的应用程序,而Solr是。Lucene专注于搜索底层的建设,而Solr专注于企业应用。Lucene 不负责支撑搜索服务所必须的管理,而Solr负责。所以说,一句话概括Solr: Solr 是Lucene面向企业搜索应用的扩展。 Solr与Lucene架构图: Solr使用Lucene并且扩展了它! ?一个真正的拥有动态字段(Dynamic Field)和唯一键(Unique Key)的数据模式(Data Schema) ?对Lucene查询语言的强大扩展! ?支持对结果进行动态的分组和过滤 ?高级的,可配置的文本分析 ?高度可配置和可扩展的缓存机制 ?性能优化

solr使用手册

Solr全文检索服务 一、企业站内搜索技术选型 ?在一些大型门户网站、电子商务网站等都需要站内搜索功能,使用传统的数据库查 询方式实现搜索无法满足一些高级的搜索需求,比如:搜索速度要快、搜索结果按 相关度排序、搜索内容格式不固定等,这里就需要使用全文检索技术实现搜索功能。 1.使用Lucene实现?什么是Lucene ? ?Lucene是一个基于Java的全文信息检索工具包,它不是一个完整 的搜索应用程序,而是为你的应用程序提供索引和搜索功能。Lucene 目前是Apache Jakarta(雅加达) 家族中的一个开源项目。也是目前 最为流行的基于Java开源全文检索工具包。目前已经有很多应用程 序的搜索功能是基于Lucene ,比如Eclipse 帮助系统的搜索功能。 Lucene能够为文本类型的数据建立索引,所以你只要把你要索引的 数据格式转化的文本格式,Lucene 就能对你的文档进行索引和搜索 ●单独使用Lucene实现站内搜索需要开发的工作量较大,主要表现在:索 引维护、索引性能优化、搜索性能优化等,因此不建议采用。 2.使用Google或Baidu接口? ●通过第三方搜索引擎提供的接口实现站内搜索,这样和第三方引擎系统依 赖紧密,不方便扩展,不建议采用。 3.使用Solr实现? Solr是什么? ?Solr 是Apache下的一个顶级开源项目,采用Java开发,它是基于 Lucene的全文搜索服务器。Solr提供了比Lucene更为丰富的查询语 言,同时实现了可配置、可扩展,并对索引、搜索性能进行了优化。 ?Solr可以独立运行,运行在Jetty、Tomcat等这些Servlet容器中, Solr 索引的实现方法很简单,用 POST 方法向 Solr 服务器发送一 个描述 Field 及其内容的 XML 文档,Solr根据xml文档添加、删 除、更新索引。Solr 搜索只需要发送 HTTP GET 请求,然后对 Solr 返回Xml、json等格式的查询结果进行解析,组织页面布局。Solr

虚拟机学习云环境第二篇Hadoop和Hbase 部署

目标: 在本人的T450笔记本win7操作系统环境下熟悉云计算环境基于开源项目nutch实现大量文本内容的快速分词及检索. Hadoop、HBase、ZooKeep、Solr、Nutch 上一篇完成了Linux基础环境的搭建和集群内SSH无密码登录的设置 这一篇完成Hadoop软件安装 一、创建集群目录 mkdir -p /data/cluster cd /data/cluster mkdirtmp mkdir-p hdfs/data mkdir-p hdfs/name mkdir-p hdfs/journal 二、zookeep安装 在MNODE节点上执行: 把zookeeper-3.4.9.tar.gz拷贝到/data/cluster目录下 cd /data/cluster tarvzxf zookeeper-3.4.9.tar.gz cd /data/cluster/zookeeper-3.4.9/conf cpzoo_sample.cfgzoo.cfg 修改zoo.cfg,修改后内容如下: # The number of milliseconds of each tick tickTime=2000 # The number of ticks that the initial # synchronization phase can take initLimit=10 # The number of ticks that can pass between # sending a request and getting an acknowledgement syncLimit=5 # the directory where the snapshot is stored. # do not use /tmp for storage, /tmp here is just # example sakes. dataDir=/data/cluster/zookeeper-3.4.9/data # the port at which the clients will connect clientPort=2181 server.1=MNODE :2888:3888 server.2=SNODE :2888:3888 # the maximum number of client connections. # increase this if you need to handle more clients #maxClientCnxns=60

Solr课件

solr入门 课程计划: 1、solr服务介绍 2、solr服务的安装 3、solrhome的目录结构 4、自定义索引库 5、将数据库数据导入索引库 6、solrj对索引库的维护 7、solr案例 1solr服务介绍 1.1什么是solr Solr is the popular, blazing-fast, open source enterprise search platform built on Apache Lucene?. Solr 是Apache下的一个顶级开源项目,采用Java开发,它是基于Lucene 的全文搜索服务。 Solr可以独立运行在Jetty、Tomcat等这些Servlet容器中。 Solr提供了比Lucene更为丰富的查询语言, 同时实现了可配置、可扩展,并对索引、搜索性能进行了优化。 1.2solr与Lucene区别 Lucene是一个开放源代码的全文检索引擎工具包,它不是一个完整的全文检索应用。Lucene仅提供了完整的查询引擎和索引引擎,目的是为软件开发人员提供一个简单易用的工具包,以方便的在目标系统中实现全文检索的功能,或者以Lucene为基础构建全文检索应用。

Solr的目标是打造一款企业级的搜索引擎系统,它是基于Lucene一个搜索引擎服务,可以独立运行,通过Solr可以非常快速的构建企业的搜索引擎,通过Solr也可以高效的完成站内搜索功能。 2solr服务安装与运行 2.1下载 地址:https://www.360docs.net/doc/202693695.html,/solr/ 2.2安装 解压solr-4.10.3后的目录结构: 2.3运行 执行example目录下的start.jar即可。 2.4访问 http://localhost:8983/solr/

人世间Solr为何物

人世间Solr为何物 下面的几张图熟悉吗? 图(1) 图(2) 图(3)

?高扩展的Java搜索服务器 ?基于Lucene搜索库 ?通过HTTP接收XML/JSON格式的文档(轻量级的"REST"形式) ?没有内建的索引蜘蛛,可以与Nutch等爬虫集成 ?使用Lucene文档解析器解析HTML, OpenOffice, Microsoft Word, Excel, PowerPoint, IMAP, RTF, PDF等格式的文件 ?不仅支持字段数据模式定义, 也支持Lucene 动态字段 ?自定义分词器(Tokenizer)、过滤器(Filter)、分析器(Analyzer)以便控制索引和查询进程

?除了支持富文本字段(rich text)和元数据(metadata)外,对数字和日期等进行了很好的区分 ?能合并多个文本字段为一个全文类型(full text)的字段,方便搜索(copy field) ?可以基于性能的考虑调节各种参数(option tuning) ?支持所有的Lucene查询语法,包括Internet查询操作符(+, -, "") ?各种自定义查询处理选项 ?能够跨越多个字段搜索 ?可配置同义词(synonym words)和过滤词(stop words)文本文件 ?支持拼写检查(spell check)器 ?支持高亮(high light)显示搜索结果中的匹配关键字 ?复杂、强大的结果排序选项 ?Faceted metadata搜索结果 ?能够动态分组搜索结果 ?可配置的缓存选项,加速查询响应速度 ?可为扩展性和容灾配置索引复制(replication),like mysql replication? ?基于web浏览器的管理接口,提供统计、报告、调试等 ?丰富的操作客户端:Client for Ruby, PHP,Java, Python等 How To Get Solr UP And Running? 实际上,得到Solr并且使其运行起来是件很容易的事。首先,从apache的官方网站上下载Solr 的Package。下载后解压zip(for windows)或者tar.gz(for linux),当前最新稳定版本为1.3.0。 Solr包结构图 打开example文件夹,如图:

我终于深入参与了一个分布式系统了,好多想法不一样了!

我终于深入参与了一个分布式系统了,好多想法不一样了! 原文出处:Turbo Zhang 的博客前言 过去两个月深入的参与了一个分布式系统的开发,记得之前有人说过“想成为架构师之前,都是从微观架构开始的”。尽 管我从没想过将来的某一天要成为一个架构师,或者领域专家,我只是想萌萌哒的编码,写着自己喜欢的Code,和一 群志同道合的朋友做出大家喜欢的商品和产品。但是工作久了慢慢的搭架子的事情还是会来到你的面前,因为时间总会把一部分人慢慢推向海边,使得他们成为最早见到阳光的人。不扯淡了,为什么要说阳光呢,还是因为过去的两(三)个月可能过的太充实也太痛苦了,完成之后,曙光来临的时候整个人是会发光的哦。“深度”参与是因为我终于有机会在搭 架子的过程中有了话语权和选择权,同时也会承担70%以上的编码工作。 之前我的自我认知是我可能在软件方面的积累还可以,比如设计模式,架构分层,程序解耦,API入手等方面,但是总觉得我在硬件网络方面积累的太少,太薄了。 比如: 不同操纵系统之间的特点;

网络端口管理与分发; 哪些网络协议可以帮助我们更好的完成工作,监控虚拟机的时候是在虚机上加代理好还是用协议去控制; 硬件是否支持分布式,在扩展过程中对于.net C#的兼容怎么样; 什么时候使用多线程,在把线程交给程序调度的时候我们怎么控制和捕捉线程的异常; 日志系统对于整个分散的系统是多么的重要; 何时使用关系数据库,什么时候使用Nosql; 消息队列用擅长的MSMQ还是RabbitMQ. 怎样有效的和其他部门的同事沟通; 用什么样的方式去有效调度不同语言开发的系统; 测试用例对于大系统从零散到完整是多么的重要; 系统标准,代码原则对于后期的维护余扩展是多么的重要;等; 项目简介 首先项目详细内容不便多说,简答的说,就是为国内某大型厂商建立一套协调其自身搭建的私有云以及其购买的公有 云的一套系统。说牛X一点就是:一套混合云系统。 使用Restful

Solr开发指南

Solr 全文检索技术

1.Solr介绍 15 2.Solr安装配置-SolrCore配置 15 3.Solr安装配置-Solr工程部署 10 4.Solr安装配置-Solr工程测试 15 5.Solr安装配置-多SorlCore配置 10 6.Solr入门--schema 20 7.Solr入门-安装中文分词器 15 8.Solr入门-自定义业务系统Field 20 9.Solr入门-SolrJ介绍10 10.Solr入门-SolrJ索引维护 20 11.Solr入门-数据导入处理器20 12.Solr入门-搜索语法 10 13.Solr入门-SolrJ-搜索 20 14.Solr案例-需求分析 10 15.Solr案例-架构设计 15 16.Solr案例-Service 20 17.Solr案例-Controller 20 18.Solr案例-主体调试 20 19.Solr案例-功能完善

1【Solr介绍】 1.1S olr是什么 Solr 是Apache下的一个顶级开源项目,采用Java开发,它是基于Lucene的全文搜索服务。Solr提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展,并对索引、搜索性能进行了优化。 Solr可以独立运行,运行在Jetty、Tomcat等这些Servlet容器中,Solr 索引的实现方法很简单,用 POST 方法向 Solr 服务器发送一个描述 Field 及其内容的 XML 文档,Solr根据xml文档添加、删除、更新索引。Solr 搜索只需要发送 HTTP GET 请求,然后对 Solr 返回Xml、json等格式的查询结果进行解析,组织页面布局。Solr不提供构建UI的功能,Solr提供了一个管理界面,通过管理界面可以查询Solr的配置和运行情况。 1.2S olr与Lucene的区别 Lucene是一个开放源代码的全文检索引擎工具包,它不是一个完整的全文检索引擎,Lucene提供了完整的查询引擎和索引引擎,目的是为软件开发人员提供一个简单易用的工具包,以方便的在目标系统中实现全文检索的功能,或者以Lucene为基础构建全文检索引擎。 Solr的目标是打造一款企业级的搜索引擎系统,它是一个搜索引擎服务,可以独立运行,通过Solr可以非常快速的构建企业的搜索引擎,通过Solr也可以高效的完成站内搜索功能。 1.3Solr下载 从Solr官方网站(https://www.360docs.net/doc/202693695.html,/solr/ )下载Solr4.10.3,根据Solr的运行环境,Linux下需要下载lucene-4.10.3.tgz,windows下需要下载lucene-4.10.3.zip。 Solr使用指南可参考:https://https://www.360docs.net/doc/202693695.html,/solr/FrontPage。

相关主题
相关文档
最新文档