Solr是一个高性能,采用Java5开发,基于Lucene的全文搜索服务器。用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引;也可以通过Http Get操作提出查找请求,并得到XML格式的返回结果。提供了比Lucene更为丰富的查询语言, 同时实现了可配置、可扩展并对查询性能进行了优化,并且提供了一个完善的功能管理界面, 是一款非常优秀的全文搜索引擎。
<env-entry>
<env-entry-name>solr/home</env-entry-name>
<env-entry-value>/put/your/solr/home/here</env-entry-value>
<env-entry-type>java.lang.String</env-entry-type>
</env-entry>
默认是注释掉的,放开注释,并将
<env-entry-value>/put/your/solr/home/here</env-entry-value>
中的值修改为第三步创建的solrhome目录,如:E:\MyFile\Tomcat\apache-tomcat-7\webapps\solr\solrhome;
<codecFactory class="solr.SchemaCodecFactory"/>
<schemaFactory class="ClassicIndexSchemaFactory"/>
重启tomacat7,可能会报错,查看tomcat日志发现,比如出现:
缺少DataImporthandler的jar包异常等,那么将solr-5.3.1\dist下的solr-dataimporthandler-5.3.1.jar和solr-dataimporthandler-extras-5.3.1.jar拷贝到apache-tomcat-7、webapps\solr\WEB-INF\lib下。
重启tomcat7,如果出现缺少其他jar包异常,则只需要添加相应jar包即可,访问http://localhost:8080/solr/index.html地址。
"content_test" type="text_general" indexed="true" stored="true" multiValued="true"/>
<fieldtype name="textComplex" class="solr.TextField" positionIncrementGap="100">
<analyzer>
<tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="complex" dicPath="dic"/>
analyzer>
fieldtype>
<fieldtype name="textMaxWord" class="solr.TextField" positionIncrementGap="100">
<analyzer>
<tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="max-word"/>
analyzer>
fieldtype>
<fieldtype name="textSimple" class="solr.TextField" positionIncrementGap="100">
<analyzer>
<tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="simple" dicPath="E:/my_dic"/>
analyzer>
fieldtype>
import java.io.IoException;
import java.util.ArrayList;
import java.util.List;
import org.apache.solr.client.solrj.SolrClient;
import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.client.solrj.impl.HttpSolrClient;
import org.apache.solr.common.SolrInputDocument;
public class InsertProgarm{
//solr 服务器地址
public static final String solrServerUrl = "http://localhost:8080/solr";
//solrhome下的core
public static final String solrCoreHome = "my_solr";
//待索引、查询字段
public static String[] docs = {
"solr是一个独立的企业级搜索应用服务器",
"它对外提供类似于Web-service的API接口",
"用户可以通过http请求",
"向搜索引擎服务器提交一定格式的XML文件生成索引",
"它可以通过http Get操作提出查找请求",
"并带的XML格式的返回结果"
};
public static void main(String[] args){
SolrClient client = new HttpSolrClient(solrServerUrl+"/"+solrCoreHome);
int i = 0;
List solrDocs = new ArrayList();
for(String content : docs){
SolrInputDocument doc = new SolrInputDocument ();
doc.addField("id",i++);
doc.addField("content_test",content);
solrDocs.add(doc);
}
try{
client.add(solrDocs);
client.commit();
}catch(SolrServerException e){
e.printStackTrace();
}catch(IOException e){
e.printStackTrace();
}
}
}