提供了比Lucene更为丰裕的询问语言,由用户请求的当儿以一个动态字段排序

 原文地址:http://blog.csdn.net/duck_genuine/article/details/8477336

图片 1

出于用户要的时段依据一个动态字段排序,sort=rand_123456*类,随机的变型,跟该动态字段有关

图片 2

每当
schema.xml:配置一个动态字段,如下。具体实现可扣押代码 org.apache.solr.schema.RandomSort菲尔德(Field)(Field)

图片 3

 

以导入数据及链接mysql,大家还索要导入多少个重要之jar包。由于mysql的jar包并无在路面临,我是复制了一致卖放到了dist目录下面了。此外两独待之jar包就是dist目录下涵“dataimport”标识的jar包。

 1     <types>  
 2      ...  
 3      <fieldType name="random" class="solr.RandomSortField" />  
 4      ...   
 5     </types>  
 6     <fields>  
 7      ...  
 8      <dynamicField name="rand*" type="random" indexed="true" stored="false"/>  
 9      ...  
10     </fields>  

5.新增配置文件

发出这样的同等种植需求,想从索引库里自由取出4条记下。

图片 4

检测成功

 

IK分词包内容:

Examples of queries:

(2).添加所有索引:

    private static int getSeed(String fieldName, AtomicReaderContext context) {  
        final DirectoryReader top = (DirectoryReader) ReaderUtil.getTopLevelContext(context).reader();  
        return fieldName.hashCode() + context.docBase + (int)top.getVersion();  
      }  

solr默认使用jetty部署,也足以以tomcat部署,这次用默认jetty部署,进入solr目录,输入:bin/solr
start命令,出现Happy searching!字符声明启动成功,默认端口号8983

 

7.组成中文分词工具IK Analyzer

 该字段实现从定义的一个比较器,
随机性跟传进来的动态字段名有关:重要的hash算法实现如下:

目成功

    private static int hash(int key) {  
      key = ~key + (key << 15); // key = (key << 15) - key - 1;  
      key = key ^ (key >>> 12);  
      key = key + (key << 2);  
      key = key ^ (key >>> 4);  
      key = key * 2057; // key = (key + (key << 3)) + (key << 11);  
      key = key ^ (key >>> 16);  
      return key >>> 1;   
    }  

图片 5

和一个url 重回的结果碰头是同

图片 6

添加中文分词IK配置音信:

dataSource是数据库数据源。Entity就是同等张表对应的实体,pk是主键,query是询问语句。Field对应一个字段,column是数据库里的column名,后边的name属性对诺在Solr的Filed的名。其中solrdata是数码库名,case_task是表名。

图片 7

在case_task/conf目录下新建data-config.xml, 内容如下。

以ik-analyzer-solr5-5.x.jar这些jar包放入solr项目下之dist目录下边,将IKAnalyzer.cfg.xml,mydict.dic(搜狗之扩展词库),stopword.dic放在solr项目下之server/resources目录上边

官网:http://lucene.apache.org/solr/

deltaImportQuery=”select * from case_task where id=’${dih.delta.id}'”

询问成功

12.managed-schema配置field信息

http://localhost:8983/solr/case\_task/dataimport?command=full-import&clean=false&commit=true

😉

“`

图片 8

图片 9

11.创建连接配置文件

图片 10

搜索 

http://localhost:8983/solr/case\_task/dataimport?command=delta-import&clean=false&commit=true

2.索引结构(版本:6.3.0)

浏览器访问当地solr地址:http://localhost:8983/solr/\#/

下载地址:http://download.csdn.net/detail/linzhiqiang0316/9537326

(1).点击Core Admin,配置我们树立的solr Core的信息,如下所示:

(4).检测粤语分词

9.数据库字段

14.旁操作

😉

8.导入需要之jar包

3.启动solr

  Solr是一个高性能,采取Java5支付,基于Lucene的全文检索服务器。同时对这进展了增加,提供了比Lucene更为丰盛的询问语言,同时实现了但部署、可增加并对准查询性能举办了优化,并且提供了一个健全之力量管理界面,是一律迟迟好优秀的全文检索引擎

6.导入粤语分词工具IK Analyzer

“`

图片 11

(1).删除所有索引:

(3).新增索引:

说明:

(3).监测查询成功

在server/solr目录下,有一个README.txt的文书,其中表明了何等建solr
core。最简便易行的树立是直复制solr中也咱提供好的事例,打开server/solr/configsets目录会发现其间早已有三独例证,因为大家是如果起数据库导入数据,所以复制
“data_driven_schema_configs” 这一个事例并改名为 “case_task”。

内deltaQuery是增量索引,原理是自数据库中冲deltaQuery指定的SQL语句询问有有需要增量导入的多少的ID号。然后因deltaImportQuery指定的SQL语句再次回到所有这几个ID的数据,即为本次增量导入所即便拍卖的数量。主题思想是:通过放手变量“${dih.delta.id}”和
“${dataimporter.last_index_time}”来记录本次要索引的id和不久前相同蹩脚索引的光阴。

接下来打开myCollections/conf/solrconfig.xml,引用下面提到的jar包和国文分词工具jar包如下。

deltaQuery=”select id from case_task where last_modify_time>
‘${dataimporter.last_index_time}'”>

4.访问solr

图片 12

http://localhost:8983/solr/case\_task/update/?stream.body=%3Cdelete%3E%3Cquery%3E\*:\*%3C/query%3E%3C/delete%3E&stream.contentType=text/xml;charset=utf-8&commit=true

13.添加大家正好建立的core

😉

(2).测试索引是否成

data-config.xml

图片 13

10.添加requestHandler

1.下载solr

持续修改case_task/conf/solrconfig.xml,搜索 
,然后于该行之上添加如下代码。

图片 14

😉

相关文章