solr作为nosql,和mysql等关系数据库区别于,solr数据查询功能简单,做倒排索引, 查询效率相对于mysql快.
1,下载solr3.4.0
2,solr+tomcat:
1. 拷贝 apache-solr-3.4.0/dist/apache-solr-3.4.0.war至apache-tomcat-7.0.21/webapps/
最好重命名为solr.war,简化网页访问路径
2. 拷贝 apache-solr-3.4.0/example/solr 至 /home/hadooper/solr_home (或者任意一个你指定的Solr主目录)
3. 修改tomcat/webapp/yourappname/web.xml文件,在文件末尾添加env-entry值
或者修改 apache-tomcat-7.0.21/conf/web.xml, 指定solr主目录
在文件末尾(</web-app>之前)添加:
<env-entry>
<env-entry-name>solr/home</env-entry-name>
<env-entry-value>/home/hadooper/solr_home/</env-entry-value>
<env-entry-type>java.lang.String</env-entry-type>
</env-entry>
http://localhost:8983/solr/select/?q=3007WFP&version=2.2&start=0&rows=10&indent=on&fq=websitetype:[30%20TO%2039]
http://localhost:8983/solr/select/?q=3007WFP&version=2.2&start=0&rows=10&indent=on&fl=websitetype&fq=-websitetype:[30%20TO%2039]
4,solr and/not 查询
NOT:http://localhost:8123/Search/s?hl=true&hlfl=title,content&rows=10&start=0&wt=xml&q=title:(厦门) OR content:(厦门) NOT websitetype:[30 TO 39]
AND:http://localhost:8123/Search/s?hl=true&hlfl=title,content&rows=10&start=0&wt=xml&q=title:(厦门) OR content:(厦门) AND websitetype:[30 TO 39]
6,solr倒排表:http://www.tuicool.com/articles/URvmQf
--------------------------------------------------------------------------------------------------------
原理简述说明:solr使用lucene,实质是对lucene的封装,将其应用化;
lucene索引过程:
a,文件文档化:document;
b,分词处理:tokenizer;
将文档分词一个个单独的单词;
去除标点符号
去除停词()
c,语言处理:linguistic processor
变小写;
词根化:cars->car/drove->drive;这个过程叫stemming,lemmatization
stemming: cars->car,solr6下面有个protwords.txt,用于屏蔽stemming操作,参考
lemmatization: drove->drive
注:搜索过程得到的词语同样要做bc两步
d,对3的词语做建字典,做倒排表;
分词:
solr6.0 自带标准分词,除此之外,通用中文分词还有ik,hanlp;
ik下载:https://code.google.com/archive/p/ik-analyzer/downloads
但ik仅更新到2012版本,solr6可参考:http://blog.csdn.net/linzhiqiang0316/article/details/51554217
通过配置IKAnalyzer.cfg.xml,以及dict文件,可自行配置term和停词
solrj更删改查参考:https://cwiki.apache.org/confluence/display/solr/Using+SolrJ
字段区域更新:http://solr.pl/en/2012/07/09/solr-4-0-partial-documents-update/