Solr学习资料
这篇博客含有海量资料,学习solr必备字典。大概看完solr就基本上手了。
solr原味资料:http://wiki.apache.org/solr/FrontPage
(
http://wiki.apache.org/solr/QueryParametersIndex
http://wiki.apache.org/solr/SchemaXml
http://wiki.apache.org/solr/CoreAdmin
http://wiki.apache.org/solr/ExtractingRequestHandler
http://wiki.apache.org/solr/AnalyzersTokenizersTokenFilters
http://wiki.apache.org/solr/LanguageAnalysis
http://wiki.apache.org/solr/DataImportHandler#Overview
http://wiki.apache.org/solr/Solrj
http://wiki.apache.org/solr/SolrQuerySyntax
)
solr咀嚼资料一(如联接消失可下载附件):http://clayz.iteye.com/blog/240366
solr咀嚼资料二:http://www.ibm.com/developerworks/cn/java/j-solr1/#basics
solr咀嚼资料三:http://www.ibm.com/developerworks/cn/java/j-solr-update/index.html
solr咀嚼资料四(多核(MultiCore)配置 ):http://aixiangct.blog.163.com/blog/static/9152246120111128114423633/
slor咀嚼资料五(几个solr高手):http://blog.csdn.net/aidayei/article/category/829139
http://blog.chenlb.com/category/solr-search
http://lianj-lee.iteye.com/category/71985
http://passover.blog.51cto.com/2431658/568972
http://wutaoo.iteye.com/category/58704?show_full=true
http://blognojava.iteye.com/blog/1187996
DataImportHandler的译文:http://mxsfengg.blog.163.com/blog/static/26370218200810250524813/
讲的较没用,但很深的:
http://liuxinglanyue.iteye.com/category/133220
solr源码分析:
http://www.cnblogs.com/mandela/archive/2011/05/10/2041753.html
solr讲的不错的solr高级配置:http://hi.baidu.com/mutourenoo/blog/item/63f430359ac23282a71e1269.html
solr.solr.home的配置和理解:
配置的是程序主目录,程序根据这个目录查找源文件,如System.setProperty("solr.solr.home", "./");源码分析中有介绍:http://www.cnblogs.com/mandela/archive/2011/05/10/2041753.html
在index页面在赋予下面多索引的链接。方法如下
<%
org.apache.solr.core.CoreContainer cores = (org.apache.solr.core.CoreContainer)request.getAttribute("org.apache.solr.CoreContainer");
if( cores != null
&& cores.getCores().size() > 0 // HACK! check that we have valid names...
&& cores.getCores().iterator().next().getName().length() != 0 ) {
for( org.apache.solr.core.SolrCore core : cores.getCores() ) {%>
<a href="<%= core.getName() %>/admin/">Admin <%= core.getName() %></a><br/>
<% }} else { %>
<a href="admin/">Solr Admin</a>
<% } %>
建议建立了一个拷贝字段,将所有的全文字段复制到一个字段中,以便进行统一的检索:
<field name="all" type="text" indexed="true" stored="false" multiValued="true"/>
并在拷贝字段结点处完成拷贝设置:
Xml代码
<copyField source="name" dest="all"/>
<copyField source="summary" dest="all"/>
defaultSearchField
可以将某个Field设置为defaultSearchField,当没有明确的查询Field的时候,来查询这个Filed,该Filed一般设置为multiValued,copyField多个Filed
Solr Multicore 是 solr 1.3 的新特性。其目的一个solr实例,可以有多个搜索应用。
在solr.xml中配置,如:
<?xml version="1.0" encoding="UTF-8" ?>
<solr persistent="false">
<cores adminPath="/admin/cores">
<core name="core0" instanceDir="core0" />
<core name="core1" instanceDir="core1" />
</cores>
</solr>
instanceDir是solr.home,即core0,core1索引资源文件所在的路径
name是solr请求的路径,如http://localhost:8393/core0/admin/可进入core的admin页面,
solrj可以用http://localhost:8393/core0/..对该索引请求操作
ExtractingRequestHandler是文件提取,可用于word、pdf等文件提取
可参考http://xinyangwjb.iteye.com/admin/blogs/1405676
中文分词采用lucene自带的CjkAnalyzer分词:
http://lianj-lee.iteye.com/blog/519254
http://blog.csdn.net/cnhome/article/details/5543308
采用cjk有俩原因,一、我使用的solr的版本只有1.4.0,lucene的版本也只有2.9.1,自带的中文分析器只有cjk。
二、cjk不用引入外部的jar报和字典库,简单,快~~
UniqueKey的问题:
默认是有这个属性的,也可以没有,如果有UniqueKey,add的时候,会先看该UniqueKey是否存在,如果存在则覆盖,不存在则新增
对于DateField的查询:
日期格式的字段的查询很恶心,必须是UTC格式,并且效率低下,建议是先将date字段转化为int或者long再存入索引。http://wiki.apache.org/solr/SolrQuerySyntax