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。

丰富的客户端

Ruby/php/java/json/javascript

使用solrj

以上的配置在solrconfig.xml,schema.xml中配置

分词的解决办法

系统提供了很多种分词方案。

StopAnalyzer,StandardAnalyzer,WhitespaceAnalyzer只是实现了数字、单词、E-mail 地址、IP地址以及中文字符的分析处理,但是对于中文的分析并不好。

对于中文分词有几种解决方案。

?Paoding: 100万汉字/s(https://https://www.360docs.net/doc/0112021719.html,/p/paoding/)

?Imdict:26万汉字/s (https://https://www.360docs.net/doc/0112021719.html,/p/imdict-chinese-analyzer/)?Ik:160万汉字/s (https://https://www.360docs.net/doc/0112021719.html,/p/ik-analyzer/)

?Mmseg4j:simple 1900kb/s 准确率98%(https://https://www.360docs.net/doc/0112021719.html,/p/mmseg4j/)注:官方提供测试环境各不相同。

这里我们选择准确率最高的Mmseg4j。

而且配置起来也十分简单。我们只是需要在schema中配置以下fieldType即可。

positionIncrementGap="100">

mode="complex" dicPath="../dic" />

words="stopwords.txt" />

mode="complex" dicPath="../dic" />

ignoreCase="true" expand="true" />

words="stopwords.txt" />

三搭建方法及配置

安装

solr版本:V4.3

1. 去apache网站https://www.360docs.net/doc/0112021719.html,/solr/ 下载Solr4.3

2. 新建目录/usr/local/solr

3. 将solr-

4.3.0/dist/solr-4.3.0.war 复制到/usr/local/solr下,重命名为solr.war

4. 将solr-4.3.0/example/lib/ext下的包复制到Tomcat/lib目录下

5. 新建目录/usr/local/solr/solr_home 作为solr 实例的跟目录

6. 将solr解压目录中的contrib,dist,example/solr/* 复制到solr_home

7. 在solr_home下新建lib目录,mkdir lib

8. 从dist/program/smsehome-solr/lib/拷贝除了solr-dataimporthandler-mongo-1.0.0.jar

之外的jar文件,中文分词包和数据库驱动包放到lib下。

目录结构如下:

└─lib

mmseg4j-analysis-*.jar

mmseg4j-core-*.jar

mmseg4j-solr-*.jar

mongo-java-driver-*.jar

mysql-connector-java-*-bin.jar

9. 将smsehome-solr/lib/solr-dataimporthandler-mongo-1.0.0.jar导入到disc目录下

10. 在solr_home下新建dic目录,mkdir dic。

11. 文件结构如下

└─solr_home

bin/

collection1/

contrib/

dic/

dist/

lib/

README.txt

solr.xml

Zoo.cfg

12. 拷贝发布文件data-config.xml ,solrconfig.xml ,schema.xml,solrcore.properties 到/usr/local/solr/solr_home/collection1/conf/ 目录下。

13. 修改solrcore.properties

db_driver=com.mysql.jdbc.Driver

db_url=jdbc:mysql://172.26.1.110:3306/smsehome

db_user=irmuser

db_passwd=irmuser

mongodb_host=172.26.1.110

mongodb_port=27017

mongodb_database=admin

mongodb_username=admin

mongod_password=BussINEssHome2013

file_path=http://172.31.16.233:8080/smsehome-web/showPicMongo.do?uploadFileMong oId

修改红色部分的配置。以db开头的mysql数据源,以mongodb开头的时候mongodb数据源。

单机环境到此就配置好了。

打开http://ip:8080/solr/#/ 可以看到dashboard和collection1表示安装成功。

打开http://ip:8080/solr/browse可以看到索引内容为空。

集群安装与配置

1下载zookeeper

https://www.360docs.net/doc/0112021719.html,/并解压zookeeper。

新建zoo/data目录,用于存放zookeeper 的数据。

进入到目录zookeeper/conf 复制zoo_sample.cfg 为zoo.cfg,编辑zoo.cfg: dataDir= /zoo/data

clientPort=2181

server.1=192.168.1.11:2888:3888

server.2=192.168.1.12:2888:3888

server.3=192.168.1.13:2888:3888

dataDir设置zookeeper数据存放目录绝对路径

clientPort设置Zookeeper链接端口

server.i设置集群中服务器的IP及端口号,i代表第几个服务器,与之对应的,需要在zoo/data中新建myid文件,文件内容为对应的i。

集群安装:分别在192.168.1.11,192.168.1.12,192.168.1.13上安装,/zoo/data/myid文件内容分别为配置中对应的1,2,3。

2 启动zookeeper.

启动zookeeper。zkServer.sh start。按照上面server 的顺序启动。

Server.1,server.2,server.3。

3 配置tomcat。

将上面配置好的tomcat复制3份,把相应的solr.xml文件指定到工程目录。

4 配置其中一台为

JAVA_OPTS=”-Dbootstrap_confdir=/solr_home/collection1/conf

-Dcollection.configName=clusterconf

-DzkHost=192.168.1.11:2181,192.168.1.12:2181,192.168.1.13:2181

-DnumShards=2”

参数:

-Dbootstrap_confdir为solr的配置文件目录

-Dcollection.configName为solrCloud配置显示名

-DzkHost为zookeeper服务器列表,逗号隔开

-DnumShards为分片个数

在其他机器

分别在192.168.1.2,192.168.1.3,192.168.1.4上配置/tomcat/bin/catalina.sh(.bat windows):

JAVA_OPTS=”-DzkHost=192.168.1.11:2181,192.168.1.12:2181,192.168.1.13:218 1”

此处仅配置-DzkHost即可,所有solr配置均从zookeeper中获取。

5 修改solr.xml

solr_home/solr.xml中的hostPort="8080" 改为tomcat的启动端口

6 启动tomcat

启动顺序:首先启动指定了bootstrap_confdir的tomcat,然后启动其他solr的tomcat。四互动应用(POC)

应用方案设计

互动社区化应用架构图

需要索引的表

互动问题、回复、评论相关表:TB_IRCS_QUESTION等

活动信息表:TB_IRCS_ACTIVITY等

主题表:TB_IRCS_SUBJECT等

注册用户表TB_IRCS_INVESTOR等

话题表:TB_IRCS_TOPIC等

视频表TB_IRCS_VIDEO等

高管表TB_IRCS_COMP_LINKMAN,TB_IRCS_INVESTOR等。

Facet

具体整理一个《索引字段对应关系表.xls》

搜索引擎配置

全局配置

Solrconfig配置

1 配置系统和自己实现的dataimporthandler的jar包路径

2 solr索引的路径

${solr.data.dir:}

3 solr的查询接口

其中要配置facet信息,高亮信息和字段的权重信息。

4 solr的更新接口

使用默认字段即可。

5 使用数据库导入索引的配置

其中data-config.xml配置需要索引的数据库的信息、表名以及索引的字段。

Scheme配置

主要分为一下几块:Fields、types和copyField 的定义

Types定义:

name:标识字段。在fields中要引用到。

class和其他属性决定了这个fieldType的实际行为。(class以solr开始的,都是在org.appache.solr.analysis包下)

其中我们需要配置中文分词

上面是基于Mmseg4j的标准配置。

我们需要维护词库"dicPath=dic

Spelling.txt,同义词库:synonyms.txt、停词库stopwords.txt.

Fields配置

所有的facet都要在schema中定义一种类型。在配置文件中配置。例如:

将相应表的字段都配置到schema中。

其中有四个参数:

Name:要索引的字段名

Type:solr定义的类型。通常我们会加分词插件的类型。就是上面types里配置的字段。indexed:是否被用来建立索引(关系到搜索和排序)

stored:是否储存

compressed:[false],是否使用gzip压缩(只有TextField和StrField可以压缩)mutiValued:是否包含多个值

omitNorms:是否忽略掉Norm,可以节省内存空间,只有全文本field和need an index-time boost的field需要norm。(具体没看懂,注释里有矛盾)

termVectors:[false],当设置true,会存储term vector。当使用MoreLikeThis,用来作为相似词的field应该存储起来。

termPositions:存储term vector中的地址信息,会消耗存储开销。

termOffsets:存储term vector 的偏移量,会消耗存储开销。

default:如果没有属性需要修改,就可以用这个标识下。

copyField的配置

例如:

将多个field的数据放在一起同时搜索,提供速度将一个field的数据拷贝到另一个,可以用2种不同的方式来建立索引。精确匹配和模糊匹配。

对于schema的配置情况,可以采用admin界面测试。

Analysis中Field Value (Index)显示是如何构建索引的。

右侧Field Value (Query)显示查询是如何分解索引的。

客户端API

索引更新API

http://ip:port/update?qt

第二种dataimporthandler,参见solr的维护界面。

信息查询API

http://ip:port/query?qt=

配置,在solrconfig.xml中配置请求的url。

其中可以配置分词的权重,页面需要的facet信息,高亮的信息。

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/0112021719.html,/j2se/downloads.html) ?Sun (https://www.360docs.net/doc/0112021719.html,/j2se/downloads.html) ?IBM (https://www.360docs.net/doc/0112021719.html,/developerworks/java/jdk/) ?Oracle (https://www.360docs.net/doc/0112021719.html,/technology/products/jrockit/index.html)安装步骤请参考相应的帮助文档。 安装中间件 Solr 可以运行在任何Java 中间件中,下面将以开源Apache Tomcat 为例讲解Solr 的安装、配置与基本使用。本文使用Tomcat5.5 解压版进行演示,可在下面地址下载最新版本https://www.360docs.net/doc/0112021719.html,/download-55.cgi 安装Apache Solr 下载最新的Solr 本文发布时Solr1.4 为最新的版本,下文介绍内容均针对该版本,如与Solr 最新版本有出入请以官方网站内容为准。Solr官方网站下载地址: https://www.360docs.net/doc/0112021719.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的配置和运行情况。

轻松使用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的对比,可以参考这里,或者看看中文版。

非常经典的solr教程

非常经典的solr教程,照着上面做完全能成功! duogemajia Solr 3.5 入门配置应用 机器上已安装: Tomcat 6.0 jdk1.7 mysql 5.0 1 访问https://www.360docs.net/doc/0112021719.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/0112021719.html,/p/mmseg4j/ , https://www.360docs.net/doc/0112021719.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 服务组成

美团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.使用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

人世间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文件夹,如图:

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/0112021719.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/0112021719.html,/solr/FrontPage。

Nutch相关框架视频教程(Hadoop、Hbase、Lucene、Solr、Tika、Gora)(13-20讲)

第十三讲 1、改变负载 三台机器,改变负载 host2(NameNode、DataNode、TaskTracker) host6(SecondaryNameNode、DataNode、TaskTracker) host8(JobTracker 、DataNode、TaskTracker) 指定SecondaryNameNode为host6: vi conf/masters指定host6 scp conf/masters host6:/home/hadoop/hadoop-1.1.2/conf/masters scp conf/masters host8:/home/hadoop/hadoop-1.1.2/conf/masters vi conf/hdfs-site.xml dfs.http.address host2:50070 dfs.secondary.http.address host6:50090 scp conf/hdfs-site.xml host6:/home/hadoop/hadoop-1.1.2/conf/hdfs-site.xml scp conf/hdfs-site.xml host8:/home/hadoop/hadoop-1.1.2/conf/hdfs-site.xml 指定JobTracker为host8: vi conf/mapred-site.xml mapred.job.tracker host8:9001 scp conf/mapred-site.xml host6:/home/hadoop/hadoop-1.1.2/conf/mapred-site.xml scp conf/mapred-site.xml host8:/home/hadoop/hadoop-1.1.2/conf/mapred-site.xml vi conf/core-site.xml fs.checkpoint.dir /home/hadoop/dfs/filesystem/namesecondary scp conf/core-site.xml host6:/home/hadoop/hadoop-1.1.2/conf/core-site.xml

Solr文档

Solr 全文检索服务 1企业站内搜索技术选型 在一些大型门户网站、电子商务网站等都需要站内搜索功能,使用传统的数据库查询方式实现搜索无法满足一些高级的搜索需求,比如:搜索速度要快、搜索结果按相关度排序、搜索内容格式不固定等,这里就需要使用全文检索技术实现搜索功能。

1.1单独使用Lucene实现 单独使用Lucene实现站内搜索需要开发的工作量较大,主要表现在:索引维护、索引性能优化、搜索性能优化等,因此不建议采用。 1.2使用Google或Baidu接口 通过第三方搜索引擎提供的接口实现站内搜索,这样和第三方引擎系统依赖紧密,不方便扩展,不建议采用。 1.3使用Solr实现 基于Solr实现站内搜索扩展性较好并且可以减少程序员的工作量,因为S olr提供了较为完备的搜索引擎解决方案,因此在门户、论坛等系统中常用此方案。 2什么是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不提供构建UI 的功能,Solr提供了一个管理界面,通过管理界面可以查询Solr的配置和运行情况。

UG_OpenGrip语言经典教程

UG Open/Grip语言总结简明教程,Grip语言具备完整的语法规则、程序结构、内部函数、Grip程序必须经过编译、连接、生成可执行文件之后才能运行。利用Grip程序能够实现与UG的各种交互操作,例如几何体的创建、文件的管理、系统参数的控制、UG数据库的存取等。本文就为大家总结了Grip语言的语法,并附注释讲解。 $$ 注释 $$ Grip启动和编译:先找到UG的安装路径,如C:\Program Files\EDS\Unigraphics NX。 $$ 进入该路径下的UGOPEN目录,找到grade.bat文件,打开它,将环境变量base_dir $$ 设置成set base_dir=C:\Program Files\EDS\Unigraphics NX,保存并运行。 $$ Grip程序的编写和编译:在Grip的运行程序中,键入4,将你编写的Grip程序所在的目 $$ 录写入并回车。在Grip的运行程序中,键入1,写入新建Grip程序的文件名并回车,此时 $$ Grip会打开写字板,你可以在其中写入你的程序。在Grip的运行程序中,键入2,写入 $$ 所编译的文件名,编译无错后,键入3,写入所链接的文件名,链接无错后完成。 $$ 你所编写的Grip程序保存成*.grs文件,编译后Grip会生成*.gri文件,链接后Grip会 $$ 生成*.grx文件,此文件为Grip的运行文件。 $$ Grip程序的运行:打开UG,点击File->Execute->Grip,选择*.grx文件,就可运行它。 $$ 编译时应先编译子函数文件,生成*.gri,子函数文件不需要链接,此时再编译主函数 $$ 文件,生成*.gri,最后链接成*.grx。 $$ Grip主函数文件必须以HALT结束,Grip子函数文件必须以RETURN结束。 $$ 定义的变量不能超过6个字符,Grip会认为Point_1和Point_2是同一个变量。 $$ 一行不能超过80个字符,若超过,可用$符号来换行。 $$ Grip不区分大小写,也就是Grip会认为POINT和point都是画点函数,但是我建议Grip $$ 的函数名和关键字用大写,用户定义的变量用小写。但是用户定义的变量不能和Grip的 $$ 函数名和关键字重名。 $$ Grip的帮助文件在C:\EDS\Unigraphics NX\UGDOC\html_files\mainlibrary.chm\ $$ Open\GRIP Reference Guide下。一个简便的Grip函数查找方法:打开...\Word & $$ Symbol Lists\Major Word List,根据首字母来查函数。 HALT $$ 结束语 $$ 注释 ENTITY/p,l,c $$ 实体变量定义 NUMBER/i,f(5) $$ 数值变量定义 STRING/str(10) $$ 字符串变量定义 p=POINT/0,0,0 $$ 画点

solr集群搭建

solrcloud集群搭建 1什么是SolrCloud 1.1什么是SolrCloud SolrCloud(solr 云)是Solr提供的分布式搜索方案,当你需要大规模,容错,分布式索引和检索能力时使用SolrCloud。当一个系统的索引数据量少的时候是不需要使用SolrCloud的,当索引量很大,搜索请求并发很高,这时需要使用SolrCloud来满足这些需求。 1.2SolrCloud结构 SolrCloud为了降低单机的处理压力,需要由多台服务器共同来完成索引和搜索任务。实现的思路是将索引数据进行Shard(分片)拆分,每个分片由多台的服务器共同完成,当一个索引或搜索请求过来时会分别从不同的Shard的服务器中操作索引。 SolrCloud需要Solr基于Zookeeper部署,Zookeeper是一个集群管理软件,由于SolrCloud 需要由多台服务器组成,由zookeeper来进行协调管理。 下图是一个SolrCloud应用的例子:

对上图进行图解,如下:

1.2.1物理结构 三个Solr实例(每个实例包括两个Core),组成一个SolrCloud。 1.2.2逻辑结构 索引集合包括两个Shard(shard1和shard2),shard1和shard2分别由三个Core组成,其中一个Leader两个Replication,Leader是由zookeeper选举产生,zookeeper控制每个shard 上三个Core的索引数据一致,解决高可用问题。 用户发起索引请求分别从shard1和shard2上获取,解决高并发问题。 1.2.2.1c ollection Collection在SolrCloud集群中是一个逻辑意义上的完整的索引结构。它常常被划分为一个或多个Shard(分片),它们使用相同的配置信息。 比如:针对商品信息搜索可以创建一个collection。 collection=shard1+shard2+....+shardX

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)

GRIP简明教程

UG Open/Grip简明教程 $$ 注释 $$ Grip启动和编译:先找到UG的安装路径,如C:\Program Files\EDS\Unigraphics NX。 $$ 进入该路径下的UGOPEN目录,找到grade.bat文件,打开它,将环境变量base_dir $$ 设置成set base_dir=C:\Program Files\EDS\Unigraphics NX,保存并运行。$$ Grip程序的编写和编译:在Grip的运行程序中,键入4,将你编写的Grip程序所在的目 $$ 录写入并回车。在Grip的运行程序中,键入1,写入新建Grip程序的文件名并回车,此时 $$ Grip会打开写字板,你可以在其中写入你的程序。在Grip的运行程序中,键入2,写入 $$ 所编译的文件名,编译无错后,键入3,写入所链接的文件名,链接无错后完成。$$ 你所编写的Grip程序保存成*.grs文件,编译后Grip会生成*.gri文件,链接后Grip 会 $$ 生成*.grx文件,此文件为Grip的运行文件。 $$ Grip程序的运行:打开UG,点击File->Execute->Grip,选择*.grx文件,就可运行它。 $$ 编译时应先编译子函数文件,生成*.gri,子函数文件不需要链接,此时再编译主函数 $$ 文件,生成*.gri,最后链接成*.grx。 $$ Grip主函数文件必须以HALT结束,Grip子函数文件必须以RETURN结束。$$ 定义的变量不能超过6个字符,Grip会认为Point_1和Point_2是同一个变量。$$ 一行不能超过80个字符,若超过,可用$符号来换行。 $$ Grip不区分大小写,也就是Grip会认为POINT和point都是画点函数,但是我建议Grip

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)

svn搭建

登录 | 注册 【拥抱变化 -- 知识改变命运】=== 知识,在实践行动中产生,在沟通交流中升华,在真诚分享中传播!=== 目录视图摘要视图订阅 7月推荐文章 【限时活动】建专辑得大奖 专访张路斌:从HTML5到Unity的游戏开发之路 当青春遇上互联网,能否点燃你的创业梦 推荐有礼--找出您心中的技术大牛 软件版本控制SVN服务器搭建 分类: 精品网络文章转载 2009-12-18 11:37 1974人阅读 评论(0) 收藏 举报 svn服务器subversion版本控制系统tortoisesvneclipse插件 什么是Subversion? Subversion 是一个自由/开源的版本控制系统。也就是说,在Subversion管理下,文件和目录可以超越时空。Subversion将文件存放在中心版本库里。这个版本库很像一个普通的文件服务器,不同的是,它可以记录每一次文件和目录的修改情况。于是我们就可以籍此将数据回复到以前的版本,并可以查看数据的更改细节。正因为如此,许多人将版本控制系统当作一种神奇的“时间机器”。 Subversion 的版本库可以通过网络访问,从而使用户可以在不同的电脑上进行操作。从某种程度上来说,允许用户在各自的空间里修改和管理同一组数据可以促进团队协作。因为修改不再是单线进行(单线进行也就是必须一个一个进行),开发进度会进展迅速。此外,由于所有的工作都已版本化,也就不必担心由于错误的更改而影响软件质量—如果出现不正确的更改,只要撤销那一次更改操作即可。 某些版本控制系统本身也是软件配置管理(SCM)系统,这种系统经过精巧的设计,专门用来管理源代码树,并且具备许多与软件开发有关的特性—比如,对编程语言的支持,或者提供程序构建工具。不过Subversion并不是这样的系统。它是一个通用系统,可以管理任何类型的文件集。对你来说,这些文件这可能是源程序—而对别人,则可能是一个货物清单或者是数字电影。 一、获取资源 (1)CollabNetSubversion-server-1.6.6-4.win32.exe SVN 服务器端 https://www.360docs.net/doc/0112021719.html,/ (2)TortoiseSVN-1.6.6.17493-win32-svn-1.6.6.msi SVN 的客户端 https://www.360docs.net/doc/0112021719.html,/ (3)LanguagePack_1.6.6.17493-win32-zh_CN.msi 中文简体的语言包 (能看英文的话就不用下) 服务器和程序下载 : https://www.360docs.net/doc/0112021719.html,/getting.html#binary-packages Windows常用客户端TortoiseSVN:https://www.360docs.net/doc/0112021719.html,/downloads AnkhSVN(Visual Studio插件):https://www.360docs.net/doc/0112021719.html,/ Subclipse(Eclipse插件):https://www.360docs.net/doc/0112021719.html,/ SCPlugin(Mac OS x客户端):https://www.360docs.net/doc/0112021719.html,/ 二、安装 上面的 1 、2 、3 均为直接安装即可,注意在安装完1再安装3的时候要重启一下,然后将4 解压到1 中安装目录下的 bin 目录中。至此安装完毕

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