设为首页 收藏本站
查看: 1004|回复: 0

[经验分享] SOLR安装及中文分词

[复制链接]

尚未签到

发表于 2016-12-15 08:07:25 | 显示全部楼层 |阅读模式
  <!--  [if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:PunctuationKerning/>
<w:DrawingGridVerticalSpacing>7.8 磅</w:DrawingGridVerticalSpacing>
<w:DisplayHorizontalDrawingGridEvery>0</w:DisplayHorizontalDrawingGridEvery>
<w:DisplayVerticalDrawingGridEvery>2</w:DisplayVerticalDrawingGridEvery>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:Compatibility>
<w:SpaceForUL/>
<w:BalanceSingleByteDoubleByteWidth/>
<w:DoNotLeaveBackslashAlone/>
<w:ULTrailSpace/>
<w:DoNotExpandShiftReturn/>
<w:AdjustLineHeightInTable/>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:UseFELayout/>
</w:Compatibility>
<w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
</w:WordDocument>
</xml><![endif]--><!--  [if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" LatentStyleCount="156">
</w:LatentStyles>
</xml><![endif]--><!--  [if !mso]>
<object
classid="clsid:38481807-CA0E-42D2-BF39-B33AF135CC4D" id=ieooui>
</object>
<mce:style><!--
st1/:*{behavior:url(#ieooui) }
-->
<!-- [endif]--> 前一阵 在研究搜索引擎分词技术...研究了好长时间 才有了结果..
  网上的资料说的都很笼统...下面是自己的安装记录....<!--  [if gte mso 10]>
<mce:style><!--
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:普通表格;
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:"Times New Roman";
mso-ansi-language:#0400;
mso-fareast-language:#0400;
mso-bidi-language:#0400;}
-->
<!-- [endif]-->

SOLR

安装及中文分词



<!--  [if !supportLists]-->一.



<!--  [endif]-->准备文件

<!--  [if !supportLists]-->1.



<!--  [endif]-->Apache Solr 1.3

<!--  [if !supportLists]-->2.


<!--  [endif]-->Apache Tomcat

<!--  [if !supportLists]-->3.


<!--  [endif]-->jdk6.0

Apache Solr 1.3:

windows

版本

http://labs.xiaonei.com/apache-mirror/lucene/solr/1.3.0/apache-solr-1.3.0.zip

linux

版本

http://labs.xiaonei.com/apache-mirror/lucene/solr/1.3.0/apache-solr-1.3.0.tgz


分词以
Paoding

词为例
.

我的版本是
paoding-analysis-2.0.4-beta


<!--  [if !supportLists]-->二.



<!--  [endif]-->安装

1.

JDK
6.0

它集成了

JRE.
如果


5.0
以下的版本
..
则需要安装
JRE

2
安装

Tomcat;
安装过程中

会提示

JDK
目录
.
选中你安装的目录即可
.
我这里
Tomcat
目录为
D:/Tomcat5.5

3.

Apache
Solr 1.3
解压到目录
..

D:/apache-solr-1.3.0,

将它下面的
dist
文件夹中的
pache-solr-1.3.0.war
拷贝到
tomcat

webapps
,并且改名为
solr.war

4.
新建一个

solr-tomcat
目录
..
我的是
D:/solr-tomcat/


建在哪儿你可以自己决定
.

把它下面在建立一个
solr
文件夹,把
D:/apache-solr-1.3.0,
包里面的
example/solr
文件夹下面的所有文件放入到
solr
里面

5.


D:/Tomcat5.5

conf
文件夹建立
Catalina
文件夹,然后在
Catalina
文件夹中在建立
localhost
文件夹,在该文件夹下面建立
solr.xml




内容为
:

<Context ocBase="D:/Tomcat5.5/webapps/solr.war"
debug="0" crossContext="true" >
#
上面
solr.war
的目录

<Environment name="solr/home"
type="java.lang.String" value="D:/solr-tomcat/solr"
override="true" />
#solr


的安装目录

</Context>

6.Tomcat


运行
http://localhost:8080/solr/

成功跑起来了

<!--  [if !supportLists]-->三.



<!--  [endif]-->安装中文分词



在上面的一个文章中,已经使
solr
跑起来了,在上面的基础上,加入中文分词。我用的是
paoding
分词器!


1.
请下好
paoding
分词器,下载地址:

http://code.google.com/p/paoding/downloads/list


解压
我的目录是
D:/paoding-analysis-2.0.4-beta

2.
在使用
paoding
的时候要注意:
paoding

dic
位置,也就是字典的位置

3.
编译一个
jar

如果没有
可以自己下载
jar


代码如下
:



package com.yeedoo.slor.tokenizer;


import java.io.Reader;


import java.util.Map;


import
net.paoding.analysis.analyzer.PaodingTokenizer;



import
net.paoding.analysis.analyzer.TokenCollector;



import net.paoding.analysis.analyzer.impl.MaxWordLengthTokenCollector;


import
net.paoding.analysis.analyzer.impl.MostWordsTokenCollector;


import
net.paoding.analysis.knife.PaodingMaker;



import
org.apache.lucene.analysis.TokenStream;


import
org.apache.solr.analysis.BaseTokenizerFactory;


public class ChineseTokenizerFactory extends
BaseTokenizerFactory {


/**

*
最多切分

默认模式


*/


public static final String MOST_WORDS_MODE =
"most-words";


/**

*
按最大切分



*/


public static final String
MAX_WORD_LENGTH_MODE = "max-word-length";


private String mode = null;


public void setMode(String mode) {


if (mode == null || MOST_WORDS_MODE.equalsIgnoreCase(mode)
|| "default".equalsIgnoreCase(mode)) {


this.mode = MOST_WORDS_MODE;


} else if
(MAX_WORD_LENGTH_MODE.equalsIgnoreCase(mode)) {



this.mode = MAX_WORD_LENGTH_MODE;


} else {



throw new IllegalArgumentException("
不合法的分析器
Mode
参数设置
:"
+ mode);


}


}


@Override



public void init(Map<String,String>
args) {


super.init(args);


setMode(args.get("mode").toString());


}


public TokenStream create(Reader input)
{


return new PaodingTokenizer(input,
PaodingMaker.make(), createTokenCollector());



}


private TokenCollector createTokenCollector()
{


if (MOST_WORDS_MODE.equals(mode))


return new MostWordsTokenCollector();


if (MAX_WORD_LENGTH_MODE.equals(mode))


return new
MaxWordLengthTokenCollector();


throw new Error("never
happened");


}


}



这个
jar



paoding
目录下的
paoding-analysis.jar

一起复制到
D:/Tomcat5.5/webapps/solr/WEB-INF/lib

4.D:/solr-tomcat/solr/conf

目录下
schema.xml
文件

找到
<

fieldType

name
="text"
class
="solr.TextField"
positionIncrementGap
="100"
>


将下面的

<tokenizerclass="solr.WhitespaceTokenizerFactory"/>

替换为


<

tokenizer

class
="com.yeedoo.slor.tokenizer.ChineseTokenizerFactory"
mode
="most-words"
/>



<analyzertype="query">
下面的


<tokenizerclass="solr.WhitespaceTokenizerFactory"/>

替换为



<

tokenizer

class
="com.yeedoo.slor.tokenizer.ChineseTokenizerFactory"
mode
="most-words"
/>




重启你的
tomcat

ok





利用SOLR
搭建企业搜索平台 之十(数据库数据导入到solr




一.
准备文件


1.apache-solr-dataimporthandler-1.3.0.jar
在D:/apache-solr-1.3.0/dist
目录下


2.D:/apache-solr-1.3.0/example/example-DIH/solr

3.
你是哪种数据库,提供该数据库的jdbc
驱动。


二.
在 D:/solr-tomcat/solr/conf
下创建 data-import.xml
文件 代码如下


<?xml version="1.0" encoding="UTF-8"?>

<dataConfig>


<dataSource type="JdbcDataSource"



driver="com.mysql.jdbc.Driver"



url="jdbc:mysql://localhost/discuz"




user="root"



password="root"/>





<document name="doc">



<entity name="jos_content" query="select * from cdb_members ">



<field column="uid" name="uid" />



<field column="username" name="username" />



</entity>



</document>


</dataConfig>

<!--  [if !supportLists]-->四.


<!--  [endif]-->修改D:/solr-tomcat/solr/conf
下solrconfig.xml




在613
行 加一下代码


<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">


<lst name="defaults">



<str name="config">./data-import.xml</str>



</lst>



</requestHandler>


<!--  [if !supportLists]-->五.


<!--  [endif]-->修改D:/solr-tomcat/solr/conf
下schema.xml



<defaultSearchField>uid</defaultSearchField>

设置默认搜索的字段




去掉所有<fields>… </fields>
中间的内容 加以下代码


<fields>




<field name="uid" type="string" indexed="true" stored="true" required="true"/>



<field name="username" type="text" indexed="true" stored="true" required="true"/>





<dynamicField name="*" type="ignored" />
#

必填!!!



</fields>

<!--  [if !supportLists]-->六.


<!--  [endif]-->去掉所有<solrQueryParser defaultOperator="OR"/>…</schema>
中间的内容




加一下代码



<copyField source="uid" dest="most-words"/>



<copyField source="username" dest="most-words"/>




注意 :
第五 和第六 是设置字段的..
要与 data-import.xml
里面的字段保持一致


重启 tomcat ,OK

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-314398-1-1.html 上篇帖子: solr 导入数据 下篇帖子: solr总结 第五部分:solr为数据库建立索引
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表