搭建内网搜索平台

本文是自己在公司发的文章,搭建公司内部的搜索平台。

很早就有一个想法,我们公司大量业务知识,中心内部交流培训和技术业务文章分享也不少,希望能有一个平台可以检索它们并且很方便的搜索到它们。

检索数据的方式可以像爬虫一样去抓取指定网站的内容,也可以通过任何人手工上传自己的文章,并且能很及时的对上传的文章建立索引并能搜索到它们。

要建立这样的平台,肯定需要花费很多时间才能完成,因为是业余时间来做这个功能,为了能花费较少时间并且多了解一些框架和技术,我开发了部分代码并用一些开源项目帮助搭建了一个这样的平台。

爬虫我用了2.1来存储,

搭建上述的框架,花费了我很多时间,遇到了很多问题,这些问题可能也和操作系统有关系,我是WIN764位的,有的问题通过网络也没有搜索到相关问题说明,是自己通过反复看日志猜出来的解决办法。因此对于其他系统搭建这样的框架,不一定完全具有参考性。

一、爬虫和搭建数据中心安装过程:

首先需要在已经安装下载后分别解压或安装。

因为Nutch下载setup.exe文件,然后运行,我选择的离线下载,因为安装包比较大会下载很久,离线下载完毕后再安装它,安装目录不要有空格和中文目录。

Nutch文件,再把解压后的文件复制到

Solr

中文分词用的IKAnalyzer2012_u6,在

<?xmlversion=”1.0″encoding=”UTF-8″?>

<!DOCTYPEpropertiesSYSTEM”http://java.sun.com/dtd/properties.dtd”>

<properties>

<comment>IKAnalyzer扩展配置</comment>

<!–用户可以在这里配置自己的扩展字典

<entrykey=”ext_dict”>ext.dic;</entry>

–>

<!–用户可以在这里配置自己的扩展停止词字典–>

<entrykey=”ext_stopwords”>stopword.dic;</entry>

</properties>

为了让IKAnalyzer2012_u6.jar包放到IKAnalyzer.cfg.xmlext.dir

然后需要把配置文件中的<entrykey=”ext_dict”>ext.dic;</entry>取消注释,使ext.dic可以被识别,中文分词Jar

<fieldTypename=”text_cn”class=”solr.TextField”

positionIncrementGap=”100″>

<analyzertype=”index”>

<tokenizerclass=”org.wltea.analyzer.solr.IKTokenizerFactory”isMaxWordLength=”false”/>

<filterclass=”solr.StopFilterFactory”ignoreCase=”true”words=”stopwords.txt”enablePositionIncrements=”true”/>

<filterclass=”solr.LowerCaseFilterFactory”/>

</analyzer>

<analyzertype=”query”>

<tokenizerclass=”org.wltea.analyzer.solr.IKTokenizerFactory”isMaxWordLength=”true”/>

<filterclass=”solr.StopFilterFactory”ignoreCase=”true”words=”stopwords.txt”enablePositionIncrements=”true”/>

<filterclass=”solr.SynonymFilterFactory”synonyms=”synonyms.txt”ignoreCase=”true”expand=”true”/>

<filterclass=”solr.LowerCaseFilterFactory”/>

</analyzer>

</fieldType>

然后把

<fieldname=”content”type=”text”stored=”false”indexed=”true”/>

<fieldname=”title”type=”text”stored=”true”indexed=”true”/>

修改为:

<fieldname=”content”type=”text_cn”stored=”true”indexed=”true”/>

<fieldname=”title”type=”text_cn”stored=”true”indexed=”true”/>

把类型修改为新增的中文类型,并且由于搜索时需要显示内容,把

配置完成后,可以用

上图是还没有新增自己的扩展字段ext.dic的结果,按照上面描述的方法增加了ext.dic字段后,航信作为了一个新名词,然后再搜索后结果如下:

航信被识别出来了,作为一个单独的名词。现在中文分词和自己扩展的新名词就都可以用了。 lawson

Mongodb

1、Showdbs可以查看当前所有数据库。

2、showcollections可以查看当前数据库的所有集合。

3、usesearcher

4、db.mginfo.find()

5、db.addUser(‘user’,’pwd’);‘user’,’pwd’);

因此正常情况下,服务端运行mongod-dbpath=D:\mongodb\data–auth

客户端就可以通过用户密码访问对应数据库了,可视化查看界面可以用

Mongo mongo=newMongo(“localhost”,27017);

DBdb=mongo.getDB(“searcher”);

if(db.authenticate(“user”,”pwd”.toCharArray())){

DBCollectionusers=db.getCollection(“mginfo”);

users.insert(object);

}

通过客户端mongo也同时需要鉴权才能查询和操作数据了。

搭建爬虫过程:在乎的应该是沿途的风景以及看风景的心情。

搭建内网搜索平台

相关文章:

你感兴趣的文章:

标签云: