之前已经介绍过如何使用solr和mysql建立索引,但索引一旦建立,之后新增的数据便不能插入了,除非每次新增数据都重新建立一遍索引,但这样太过耗时费力,故而,本章将介绍如何增量更新索引1、 找到之前data-config.xml文件,打开并在query后面加入deltaQuery="select TOPIC_ID,TOPIC_CONTENT from t_topicwhere TOPIC_ADD_DATE > ‘${dataimporter.last_index_time}‘"此段话的意思是如果有某条数据插入时间大于上次索引生成时间则...
一、 已知的问题和不足二、解决思路三、代码3.1 读取config文件内容3.2 封装SolrServer的获取方式3.3 编写提交数据到Solr的代码3.4 拦截HBase的Put和Delete操作信息四、 使用一、 已知的问题和不足 在上一个版本中,实现了使用HBase的协处理器将HBase的二级索引同步到Solr中,但是仍旧有几个缺陷:写入Solr的Collection是写死在代码里面,且是唯一的。如果我们有一张表的数据希望将不同的字段同步到Solr中该如何做呢?目前所有配...
一、 背景二、 什么是HBase的协处理器三、 HBase协处理器同步数据到Solr四、 添加协处理器五、 测试六、 协处理器动态加载一、 背景在实际生产中,HBase往往不能满足多维度分析,我们能想到的办法就是通过创建HBase数据的二级索引来快速获取rowkey,从而得到想要的数据。目前比较流行的二级索引解决方案有Lily HBase Indexer,Phoenix自带的二级索引,华为Indexer,以及360的二级索引方案。上面的目前使用比较广泛的应该是Lily HBa...
原文地址: http://blog.sina.com.cn/s/blog_3c9872d00101p4f0.htmlNutch 2.2.1发布快两月了,该版本与Nutch之前版本相比,有较大变化,特别是与MySQL联合应用的安装和配置过程有不少地方容易出错。本人在安装过程中也遇到了不少麻烦,大多问题通过baidu和google也没有找到解决方法,自己只能通过看代码和分析日志并试错,最终搞定了所遇到的各种问题,现将重要安装和配置过程整理如下。1. MySQL数据库配置l my.ini配置分别在[cl...
1.技术选型,为什么用solr而不用lucene,或者其他检索工具lucene:需要开发者自己维护索引文件,在多机环境中备份同步索引文件很是麻烦Lucene本质上是搜索库,不是独立的应用程序。而Solr是。 Lucene专注于搜索底层的建设,而Solr专注于企业应用。 Lucene不负责支撑搜索服务所必须的管理,而Solr负责。 一句话概括Solr: Solr是Lucene面向企业搜索应用的扩展其实相识的技术还有ElasticSearch,但是ES只支持json文件格式,需要靠第三方插...
package com.main.java.solr.statistics;import org.apache.lucene.document.Document;
import org.apache.lucene.index.IndexReader;
import org.apache.lucene.index.IndexableField;
import org.apache.lucene.search.ScoreDoc;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;/*** 统计目录下索引信息*/publi...
上篇文章我们介绍了全量更新solr索引,但是在数据量较大时,频繁的更新索引会消耗系统性能,如果更新频率较低,则会影响短时的数据准确性,所以,更新时间的间隔是个很难界定。增量索引解决了这个问题,我们可以在较短的时间内只更新那些变化的数据,这样就避免了大批量的数据更新,因为数据量小,我们可以设置较短的时间间隔,大幅度的提高了用户体验度。本文介绍增量索引。
一 配置数据源
1.1 数据库 为了便于同全量索...
发送leader,由leader定位地址。然后写到shard上,同一时候copy到replicaton 。 如图原文:http://www.cnblogs.com/gccbuaa/p/6921201.html
你为什么需要搜索引擎?单纯数据库不够用?如果你只是创建小网站,数据库就够了。但当你创建中性或大型应用的时候,搜索引擎是更明智的选择。当然如是一说,小网站也可以利用Solr,获得高相关性的搜索结果。想象一下你在写一个电子商务网站的搜索查询程序。最直接的想法就是如下的数据库查询语句:SELECT * FROM PRODUCTS
WHERE LOWER(title) like LOWER(%$phrase%)
OR LOWER(description) like LOWER(%$phrase%);查询标题或描述中...
测试solr源码set_time_limit(0);$a[1] = array("发的","比萨","无论","是否","魔兽世界","而是","测试","就是","无语","米哦","明强","话人生命过喝过","比赛","明却","统一阿萨姆","耐材","龚彬","时间老人是一把犀利的剑","没有郁闷的今天是你做大的失败","沉默才是最好的结局","千千静听","我","是","中国人","打死小日本","是吗","明白否","或者你与我无奈","今夜你还在");$a[2] = array(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,...
"responseHeader": {"status": 0,"QTime": 1,"params": {"q": "*:*","indent": "true","wt": "json","_": "1608643748789"}},"response": {"numFound": 2,"start": 0,"docs": [{"id": "1","title": ["zhai"],"_version_": 1686785156649582600},{"id": "change.me","title": ["change.me"],"_version_": 1686785221848989700}]}
}提交数据:{"id":"2","title":"test"}再次查询:{"responseHeader": {"status": 0,"QTime": 1,"param...
演示使用solr管理后台,以mysql为数据源,批量建索引的方法
测试于:Solr 4.5.1, mmseg4j 1.9.1, Jdk 1.6.0_45, Tomcat 6.0.37 | CentOS 5.7
配置数据源
[root@devnote ~]# cd /root/solr-4.5.1/example/example-DIH/solr/db/conf[root@devnote conf]# touch mysql-data-config.xml
编辑mysql-data-config.xml,根据需要添加新内容,内容可参见同目录下db-data-config.xml文件
<dataConfig> <dataSource driver="com.mysql.jdb...
首先在solrconfig.xml(我的是保存在/usr/local/tomcat/solrhome/mycore/conf/下)的<requestHandler name="/select" class="solr.SearchHandler">之上添加
(我的本地的solrconfig.xml中有这个/dtatimport 只需把class修改为下面的就可以了)
<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler"> <lst name="defaults"> <str name="config">data-config.xml</str> </lst>
</re...
前言:之前测试了solr好几个版本都没有成功,solr比较好下载的版本5.0,5.5,6.6。solr6.6结合tomcat8做自动同步mysql数据一直报错,然后果断测试5.5版本的,成功了。
环境:windows10, jdk1.8,tomcat8,solr5.5.4
实现功能:通过前端输入关键字查询,同时查询多表多字段。当数据库mysql添加或者更新数据的时候,数据自动更新到solr引擎中。
正文:
第一步:下载solr
1.solr5.5下载:http://apache.fayea.com/lucene/solr/,...
DataBase Name: mybatis
Table Name: user
Db.sql 1 SET FOREIGN_KEY_CHECKS=0;2 -- ----------------------------3 -- Table structure for `user`4 -- ----------------------------5 DROP TABLE IF EXISTS `user`;6 7 CREATE TABLE `user` (8 `id` int(11) NOT NULL AUTO_INCREMENT,9 `userName` varchar(50) DEFAULT NULL,
10 `userAge` int(11) DEFAULT NULL,
11 `userAddress` varchar(200) DEFAULT NULL,
12 PRIM...