一、配置中文分析器:IK-analyzer,在FieldType中指定中文分析器:
1 复制IK-analyzer到你的服务器指定目录中。
2 在该目录中,我们需要的东西有:IKAnalyzer的jar包,IKAnalyzer.cfg.xml,mydict.dic和ext_stopword.dic
3 需要把这个jar包添加到solr工程中:
cd IKAnalyzer/

cp IKAnalyzer.jar /home/wangchao/solr/apache-tomcat-8.0.46/webapps/solr/WEB-INF/lib/
4 需要把扩展词典和停用词词典和配置文件复制到solr工程的classpath中:
cd /home/wangchao/solr/apache-tomcat-8.0.46/webapps/solr/WEB-INF

mkdir classes

cp IKAnalyzer.cfg.xml mydict.dic ext_stopword.dic /home/wangchao/solr/apache-tomcat-8.0.46/webapps/solr/WEB-INF/classes
5 注意扩展词典和停用词词典必须是UTF-8的,不能使用windows的记事本编辑。
6 配置FieldType,需要在solr_home/colection1/conf/schema.xml中配置,在最底部添加扩展的IKAnalyzer:
cd /home/wangchao/solr/solr_home/collection1/conf

vi schema.xml:
#specified ik analyzer
<fieldType name="text_ik" class="solr.TextField">
<analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/>
</fieldType>

二、定义solr的业务字段,与你想要进行索引的字段进行绑定:
1 根据你的数据库情况,将你需要进行索引的字段绑定:
<field name="article_title" type="text_ik" indexed="true" stored="true" />
<field name="article_content" type="text_ik" indexed="true" stored="true" />
<field name="article_time" type="text_ik" indexed="true" stored="true" />
<field name="news_type" type="text_ik" indexed="true" stored="true" />
<field name="article_keywords" type="text_ik" indexed="true" stored="false" multiValued="true" />
<copyField source="article_title" dest="article_keywords"/>
<copyField source="article_content" dest="article_keywords"/>
<copyField source="article_time" dest="article_keywords"/>
<copyField source="news_type" dest="article_keywords"/>
注:部分schema.xml的关键词的意义,在另外一个文档中,名叫“solr的schema.xml配置文件关键词意义”。
2 重启tomcat
三、solr管理界面的使用:
1 重要的功能:
Documents:
可以添加相应的索引内容。
Query:
q:查询条件: *:* 表示查询所有域;article:xx 指定你想要查询的域(此处是article)。
fl:返回域, 默认所有域。
df:默认搜索域,可以指定为article_keywords。
hl.simple.pre和hl.simple.post:高亮域。
sort:排序域。
start,rows:开始指定行。
四、索引库的维护:
1 增加:
直接使用Documents新增。
2 修改:
没有update,只用新增一个相同ID的索引即可,原理是先删除,后新增。
3 删除两种方法:
1<delete>
<id>xxx</id>//指定索引的ID
</delete>
<commit/>
2根据查询删除:
<delete>
<query>*:*</query>//删除所有
</delete>
<commit/>
五、将数据库的内容与solr业务字段关联并且进行索引存储:
1 第一种方式:Dataimport
2 使用代码:
1Solrj客户端的使用:
1需要依赖solrj的jar包。
2进行简单测试,使用solrj添加文档:
public void addDocument() throws Exception{
String baseUrl="http://39.108.75.175:8082/solr";
SolrServer solrServer=new HttpSolrServer(baseUrl);
//创建一个文档对象
SolrInputDocument solrInputDocument=new SolrInputDocument();
solrInputDocument.addField("id","test001");
solrInputDocument.addField("article_title","新闻测试");
solrInputDocument.addField("article_content","新闻内容啊啊啊");
//把文档对象写入索引库
solrServer.add(solrInputDocument);
//提交
solrServer.commit();
}
3删除文档:
public void deleteDocument() throws Exception{
//创建连接
SolrServer solrServer=new HttpSolrServer();
//solrServer.deleteById("");//给定索引ID
solrServer.deleteByQuery("*:*");//通过查询删除
//提交
solrServer.commit();
}
2把新闻信息导入到索引库中:
1 使用java程序读取mysql数据库中的商品信息,然后创建solr文档对象,将这个商品信息写入索引库。
2 创建一个搜索的服务工程来发布服务:deepbreath-search:
3 具体业务逻辑根据需求来做
3 使用搜索引擎:
1 查询:
public void queryDocument() throws Exception{
//创建连接
SolrServer solrServer=new HttpSolrServer();
//设置查询条件
SolrQuery query=new SolrQuery();
query.setQuery("*:*");
//查询条件
query.setStart(20);
query.setRows(50);
//执行查询
QueryResponse response=solrServer.query(query);
SolrDocumentList list=response.getResults();
for(SolrDocument document:SolrDocumentList){

}
}
2 整合Dao:

3 整合Service:
1 查询的结果封装为一个pojo对象
2 查询的结果的SolrQuery应该有这些内容:分页、默认搜索域、高亮

solr 索引库的维护的更多相关文章

  1. 维护solr索引库

    一 2)solrcore    一个solr下可以有多个solrcore,每个solrcore就是一个独立的索引库3)solrconfig.xml    lib:配置solr的扩展包的位置,不指定路径 ...

  2. 使用solrj操作solr索引库

    (solrj)初次使用solr的开发人员总是很郁闷,不知道如何去操作solr索引库,以为只能用<五分钟solr4.5教程(搭建.运行)>中讲到的用xml文件的形式提交数据到索引库,其实没有 ...

  3. 使用solrj操作solr索引库,solr是lucene服务器

    客户端开发 Solrj 客户端开发 Solrj Solr是搭建好的lucene服务器 当然不可能完全满足一般的业务需求 可能 要针对各种的架构和业务调整 这里就需要用到Solrj了 Solrj是Sol ...

  4. 将数据库的数据导入solr索引库中

    在solr与tomcat整合文章中,我用的索引库是mycore,现在就以这个为例. 首先要准备jar包:solr-dataimporthandler-4.8.1.jar.solr-dataimport ...

  5. 如何在分布式环境中同步solr索引库和缓存信息

    天气依旧很好,主要是凉快.老习惯,我在北京向各位问好. 搜索无处不在,相信各位每天都免不了与它的亲密接触,那么我想你确实有必要来了解一下它们,就上周在公司实现的一个小需求来给各位分享一下:如何在分布式 ...

  6. solr索引库的创建

    solr索引库的创建 一.找到你安装的[solrhome]目录(我的是这个) 二.进入该目录 三.选择其中任意一个索引库复制一份到该目录下并更名为要创建的索引库名称 四.进入[myindex]目录下, ...

  7. 商城06——solr索引库搭建&solr搜索功能实现&图片显示问题解决

    1.   课程计划 1.搜索工程的搭建 2.linux下solr服务的搭建 3.Solrj使用测试 4.把数据库中的数据导入索引库 5.搜索功能的实现 2.   搜索工程搭建 要实现搜索功能,需要搭建 ...

  8. 数据添加到solr索引库后前台如何搜索

    主要结构: 查询 Dao: package com.taotao.search.dao.impl; import java.util.ArrayList; import java.util.List; ...

  9. Lucene之索引库的维护:添加,删除,修改

    索引添加 Field域属性分类 添加文档的时候,我们文档当中包含多个域,那么域的类型是我们自定义的,上个案例使用的TextField域,那么这个域他会自动分词,然后存储 我们要根据数据类型和数据的用途 ...

随机推荐

  1. 高性能无锁队列 Disruptor 初体验

    原文地址: haifeiWu和他朋友们的博客 博客地址:www.hchstudio.cn 欢迎转载,转载请注明作者及出处,谢谢! 最近一直在研究队列的一些问题,今天楼主要分享一个高性能的队列 Disr ...

  2. mongodb driver2.5环境注意事项

    mongodb driver2.5环境注意事项 一.问题: 如果使用vs2012开发就会报这个错误: 未能加载文件或程序集“System.Runtime.InteropServices.Runtime ...

  3. Eclipse无法正常创建android工程解决方法!

    我最近升级了安卓的SDK,升级后发现无法在Eclipse中创建android工程了,创建的工程完毕后,没有自动生成这个工程的activity和对应的布局文件,上网搜索一番,最后终于解决了.可能是升级后 ...

  4. css3箭头

    <!DOCTYPE html> <html lang="en" class="muui-theme-webapp-main"> < ...

  5. jQuery阻止默认行为

      <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF- ...

  6. Linux 开启路由转发功能

    想让一台Red Hat Enterprise Linux 7开通iptables的nat转发功能 A服务器:192.168.30.20/24 B服务器:192.168.30.1/24,eth0; 19 ...

  7. MySQL大数据高并发处理之-查询的优化

    http://www.php1.cn/Content/MySQL_DaShuJuGaoBingFaChuLiZhi_-_ChaXunDeYouHua.html

  8. [Swift]多维数组的表示和存储:N维数组映射到一维数组(一一对应)!

    数组:有序的元素序列. 若将有限个类型相同的变量的集合命名,那么这个名称为数组名.组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量.用于区分数组的各个元素的数字编号称为下标.数组 ...

  9. JPush Android 推送如何区分开发、生产环境

    我们 Android 开发者在使用极光推送时可能会发现,在通过官方控制台进行推送时.只有 iOS 区分了开发和生产环境,而 Android 则没有.但实际开发中又确实经常需要针对开发和生产环境分别来推 ...

  10. MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on disk. Commands that may modify the data set are disabled

    初试redis,删除或者修改值的时候报的错,解决方式是运行命令: 127.0.0.1:6379> config set stop-writes-on-bgsave-error no