这是我看到过的写的较好的一篇入门文章,个人觉得相对有些文章来说靠谱些,呵呵。
机器上已安装 : Tomcat 7 jdk1.7 mysql 5.0
1 <?xml version="1.0" encoding="UTF-8"?>
2 <Context docBase="${catalina.home}/webapps/solr.war" debug="0" crossContext="true" >
3
4 <!-- 这里配置的是 Solr 运行的 Home 目录 -->
5
6 <Environment name="solr/home" type="java.lang.String" value="${catalina.home}/webapps/solr/conf/multicore" override="true" />
7 </Context>
<fieldtype name="textComplex" class="solr.TextField" positionIncrementGap="100">
<analyzer>
<tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="complex" dicPath="D:/Tomcat 7/webapps/solr/dic">
</tokenizer>
</analyzer>
</fieldtype>
<fieldtype name="textMaxWord" class="solr.TextField" positionIncrementGap="100">
<analyzer>
<tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="maxword" dicPath="D:/Tomcat 7/webapps/solr/dic">
</tokenizer>
</analyzer>
</fieldtype>
<fieldtype name="textSimple" class="solr.TextField" positionIncrementGap="100">
<analyzer>
<tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="simple" dicPath="D:/Tomcat 7/webapps/solr/dic">
</tokenizer>
</analyzer>
</fieldtype>
<field name="simple" type="textSimple" indexed="true" stored="true" multiValued="true" />
<field name="complex" type="textComplex" indexed="true" stored="true" multiValued="true" />
<field name="text" type="textMaxWord" indexed="true" stored="true" multiValued="true" />
<dataConfig>
<dataSource type="JdbcDataSource" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/test" user="root" password="123"/>
<document name="messages">
<entity name="message" transformer="ClobTransformer" query="select * from test">
<field column="ID" name="id" />
<field column="Val" name="text" />
</entity>
</document>
</dataConfig>
<!--
url="jdbc:mysql://localhost:3306/test" user="root" password="123" 这里配置了 mysql 的连接路径 , 用户名 , 密码
<field column="ID" name="id" /><field column="Val" name="text" /> 这里配置的是 数据库里要索引的字段 , 注意name 是 11 步配置的
-->
<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
<lst name="defaults">
<str name="config">D:/Tomcat 7/webapps/solr/db/db-data-config.xml</str>
</lst>
</requestHandler>
<!--
“D:/Tomcat 7/webapps/solr/db/db-data-config.xml” 是 14.3 配置文件的绝对路径
-->
注意: 这仅仅是配置 solr3.5 连接 mysql 生成索引 , 可以执行正常 词语 的查询 , 但是不能执行 对搜索短语的分词 查询
multicore 目录下面多个 core 文件夹 , 每一个都是一个接口 , 有独立的配置文件 , 处理某一类数据 。
multicore/core0/conf/ 目录下的 schema.xml 文件 相当于数据表配置文件 , 它定义了加入索引的数据的数据类型 。文件里有一个 <uniqueKey>id</uniqueKey> 的配置 , 这里将 id 字段作为索引文档的唯一标示符 , 非常重要 。
FieldType 类型 , name 是这个 FieldType 的名称 , class 指向了 org.apache.solr.analysis 包里面对应的 class 名称 , 用来定义这个类型的定义 。在 FieldType 定义的时候最重要的就是定义这个类型的数据在建立索引和进行查询的时候要使用的分析器analyzer,包括分词和过滤 。
Fields 字段 : 结点内定义具体的字段(类似数据库中的字段) , 就是 field , 包含 name , type(为之前定义过的各种FieldType) , indexed(是否被索引) , stored(是否被存储) , multiValued(是否有多个值)
copeField(赋值字段): 建立一个拷贝字段 , 将所有的全文字段复制到一个字段中 , 以便进行统一的检索 。