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 

相关推荐