- 浏览: 269937 次
- 性别:
- 来自: 天津
文章分类
- 全部博客 (183)
- oracle (4)
- informix (1)
- web开发 (6)
- java (49)
- hibernate (1)
- hadoop (1)
- spring (23)
- 非技术 (8)
- ibatis2 (5)
- Linux (6)
- tomcat (14)
- nginx (7)
- dubbo (3)
- myibatis (7)
- webservice 开发 (2)
- mysql (2)
- svn (2)
- redis (7)
- 分布式技术 (17)
- zookeeper (2)
- kafka (2)
- velocity (1)
- maven (7)
- js (1)
- freemarker (1)
- Thymeleaf (3)
- 代码审计 (1)
- ibatis3 (1)
- rabbitmq (1)
最新评论
1.下载solr 4.9.0 下载地址:http://archive.apache.org/dist/lucene/solr/4.9.0/solr-4.9.0.zip。
2.解压solr-4.9.0.zip,把solr-4.9.0\dist 目录中的solr-4.9.0.war 解压放到tomcat7的webapps 目录中,修改名称为solr.
3.在f盘建立下面目录,F:\test\solrdemo,然后把E:\solr-4_9_0\example目录中的solr 复制到
F:\test\solrdemo 目录。
4. 打开solrconfig.xml 注释掉下面的内容
<!--
<lib dir="../../../contrib/extraction/lib" regex=".*\.jar" />
<lib dir="../../../dist/" regex="solr-cell-\d.*\.jar" />
<lib dir="../../../contrib/clustering/lib/" regex=".*\.jar" />
<lib dir="../../../dist/" regex="solr-clustering-\d.*\.jar" />
<lib dir="../../../contrib/langid/lib/" regex=".*\.jar" />
<lib dir="../../../dist/" regex="solr-langid-\d.*\.jar" />
<lib dir="../../../contrib/velocity/lib" regex=".*\.jar" />
<lib dir="../../../dist/" regex="solr-velocity-\d.*\.jar" />
-->
然后将contrib/extraction/lib,/contrib/clustering/lib,dist/,contrib/langid/lib/,dist/,contrib/velocity/lib中的jar 包复制到
webapps\solr\WEB-INF\lib 目录中。
修改存储路径: <dataDir>${solr.data.dir:}</dataDir>
为:
<dataDir>${solr.data.dir:F:/test/solrdemo/solr/data}</dataDir>
启动tomcat ,访问http://localhost:8080/solr
5.把example\resources中的log4j.properties 复制到solr-tomcat-7.0.67\webapps\solr\WEB-INF\classes 文件夹(class如果没有自己建立一下)
二,添加分词功能:
解压:IK_Analyzer_2012FF_hf1.zip 把IKAnalyzer.cfg.xml,stopword.dic 复制到\webapps\solr\WEB-INF\classes 目录, IKAnalyzer2012FF_u1.jar 复制到solr-tomcat-7.0.67\webapps\solr\WEB-INF\lib目录。
在F:\test\solrdemo\solr\collection1\conf中 schema.xml 添加IKAnalyzer配置:
<!-- 引入 IKAnalyzer -->
<fieldType name="text_ik" class="solr.TextField">
<analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/>
</fieldType>
<!--IKAnalyzer Field -->
<field name="title_ik" type="text_ik" indexed="true" stored="true" />
<field name="content_ik" type="text_ik" indexed="true" stored="false" multiValued="true"/>
重启tomcat, 在anaysis 中测试分词 ,filedtype:title_ik
测试结果:
三,dataimport 关系型数据库数据导入solr索引库
在F:\test\solrdemo\solr\collection1\conf 目录新建data-config.xml 文件内容如下:
<?xml version="1.0" encoding="UTF-8" ?>
<dataConfig>
<dataSource type="JdbcDataSource"
driver="oracle.jdbc.OracleDriver"
url="jdbc:oracle:thin:@192.168.6.2:1521:YUN"
user="yunboceceshi"
password="yun"/>
<document name="product_tt">
<entity name="product" pk="id"
query="select product_id,product_name,unit_price,unit from product"
deltaQuery="select product_id,product_name,unit_price,unit from product"
deltaImportQuery="select product_id,product_name,unit_price,unit from product"
logLevel="debug"
>
<field column="PRODUCT_ID" name="id"/>
<field column="PRODUCT_NAME" name="product_names"/>
<field column="UNIT_PRICE" name="product_price"/>
<field column="UNIT" name="product_description"/>
</entity>
</document>
</dataConfig>
注意:column 的值一定要大写,否则导数据不成功
在F:\test\solrdemo\solr\collection1\conf 中的solrconfig.xml 中添加:
<requestHandler name="/dataimport"
class="org.apache.solr.handler.dataimport.DataImportHandler">
<lst name="defaults">
<str name="config">data-config.xml</str>
</lst>
</requestHandler>
在F:\test\solrdemo\solr\collection1\conf 中的schema.xml 中添加:
<field name="product_names" type="text_ik" indexed="true" stored="true"/>
<field name="product_price" type="float" indexed="true" stored="true"/>
<field name="product_description" type="text_ik" indexed="true" stored="true" />
<field name="product_keywords" type="text_ik" indexed="true" stored="false" multiValued="true"/>
<copyField source="product_names" dest="product_keywords"/>
<copyField source="product_description" dest="product_keywords"/>
重启tomcat ,选择dataimport 菜单测试。
四,使用java 代码访问solr
package com.boce;
import java.io.IOException;
import org.apache.solr.client.solrj.SolrQuery;
import org.apache.solr.client.solrj.SolrServer;
import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.client.solrj.impl.HttpSolrServer;
import org.apache.solr.client.solrj.response.QueryResponse;
import org.apache.solr.client.solrj.response.UpdateResponse;
import org.apache.solr.common.SolrDocument;
import org.apache.solr.common.SolrDocumentList;
import org.apache.solr.common.SolrInputDocument;
public class SolrOk {
private String url = "http://localhost:8080/solr";
// 创建索引
public void testCreateIndex() throws SolrServerException, IOException {
String urlString = "http://localhost:8080/solr";
SolrServer solrServer = new HttpSolrServer(urlString);
for (int i = 0; i < 5; i++) {
SolrInputDocument document = new SolrInputDocument();
document.addField("id", "c0001");
document.addField("product_names", "竞买"+i);
// 商品名称
document.addField("product_price", 86.5f);
// 商品价格
// document.addField("product_picture", "382782828.jpg");
// 商品图片
document.addField("product_description",
"这是竞买信息的描述,内容渤海商品交易所信息内容");
//商品描述
// document.addField("product_catalog_name", "javabook");
// 商品分类
UpdateResponse response = solrServer.add(document);
}
// 提交
solrServer.commit();
}
public void deletebyId(){
String id="vg106422";
SolrServer solrServer = new HttpSolrServer(url);
try {
UpdateResponse response = solrServer.deleteById(id);
solrServer.commit();
} catch (SolrServerException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void testSearch() throws SolrServerException {
String urlString = "http://localhost:8080/solr";
SolrServer solr = new HttpSolrServer(urlString);
// 查询对象
SolrQuery query = new SolrQuery();
// 设置查询条件,名称“q”是固定的且必须 的
// 搜索product_keywords域,product_keywords是复制域包括product_name和product_description
query.set("q", "product_names:竞买");
query.setStart(10);
query.setRows(50);
// 请求查询
QueryResponse response = solr.query(query);
// 查询结果
SolrDocumentList docs = response.getResults(); // 查询文档总数
System.out.println("查询文档总数" + docs.getNumFound());
for (SolrDocument doc : docs) {
// 商品主键
String id = (String) doc.getFieldValue("id");
// 商品名称
String product_name = (String) doc.getFieldValue("product_names");
// 商品价格
Float product_price = (Float) doc.getFieldValue("product_price");
// 商品价格
String desc = (String) doc.getFieldValue("product_description");
System.out.println(product_name + "--" + product_price+"---"+desc);
}
}
// 商品图片 String product_picture = (String)
// doc.getFieldValue("product_picture"); //商品分类 String product_catalog_name
// = (String) doc.getFieldValue("product_catalog_name");
// System.out.println("=============================");
// System.out.println(id); System.out.println(product_name);
// System.out.println(product_price); System.out.println(product_picture);
// System.out.println(product_catalog_name); }
public static void main(String[] args) {
SolrOk ok = new SolrOk();
try {
ok.testCreateIndex();
//ok.testSearch();
//ok.deletebyId();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
2.解压solr-4.9.0.zip,把solr-4.9.0\dist 目录中的solr-4.9.0.war 解压放到tomcat7的webapps 目录中,修改名称为solr.
3.在f盘建立下面目录,F:\test\solrdemo,然后把E:\solr-4_9_0\example目录中的solr 复制到
F:\test\solrdemo 目录。
4. 打开solrconfig.xml 注释掉下面的内容
<!--
<lib dir="../../../contrib/extraction/lib" regex=".*\.jar" />
<lib dir="../../../dist/" regex="solr-cell-\d.*\.jar" />
<lib dir="../../../contrib/clustering/lib/" regex=".*\.jar" />
<lib dir="../../../dist/" regex="solr-clustering-\d.*\.jar" />
<lib dir="../../../contrib/langid/lib/" regex=".*\.jar" />
<lib dir="../../../dist/" regex="solr-langid-\d.*\.jar" />
<lib dir="../../../contrib/velocity/lib" regex=".*\.jar" />
<lib dir="../../../dist/" regex="solr-velocity-\d.*\.jar" />
-->
然后将contrib/extraction/lib,/contrib/clustering/lib,dist/,contrib/langid/lib/,dist/,contrib/velocity/lib中的jar 包复制到
webapps\solr\WEB-INF\lib 目录中。
修改存储路径: <dataDir>${solr.data.dir:}</dataDir>
为:
<dataDir>${solr.data.dir:F:/test/solrdemo/solr/data}</dataDir>
启动tomcat ,访问http://localhost:8080/solr
5.把example\resources中的log4j.properties 复制到solr-tomcat-7.0.67\webapps\solr\WEB-INF\classes 文件夹(class如果没有自己建立一下)
二,添加分词功能:
解压:IK_Analyzer_2012FF_hf1.zip 把IKAnalyzer.cfg.xml,stopword.dic 复制到\webapps\solr\WEB-INF\classes 目录, IKAnalyzer2012FF_u1.jar 复制到solr-tomcat-7.0.67\webapps\solr\WEB-INF\lib目录。
在F:\test\solrdemo\solr\collection1\conf中 schema.xml 添加IKAnalyzer配置:
<!-- 引入 IKAnalyzer -->
<fieldType name="text_ik" class="solr.TextField">
<analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/>
</fieldType>
<!--IKAnalyzer Field -->
<field name="title_ik" type="text_ik" indexed="true" stored="true" />
<field name="content_ik" type="text_ik" indexed="true" stored="false" multiValued="true"/>
重启tomcat, 在anaysis 中测试分词 ,filedtype:title_ik
测试结果:
三,dataimport 关系型数据库数据导入solr索引库
在F:\test\solrdemo\solr\collection1\conf 目录新建data-config.xml 文件内容如下:
<?xml version="1.0" encoding="UTF-8" ?>
<dataConfig>
<dataSource type="JdbcDataSource"
driver="oracle.jdbc.OracleDriver"
url="jdbc:oracle:thin:@192.168.6.2:1521:YUN"
user="yunboceceshi"
password="yun"/>
<document name="product_tt">
<entity name="product" pk="id"
query="select product_id,product_name,unit_price,unit from product"
deltaQuery="select product_id,product_name,unit_price,unit from product"
deltaImportQuery="select product_id,product_name,unit_price,unit from product"
logLevel="debug"
>
<field column="PRODUCT_ID" name="id"/>
<field column="PRODUCT_NAME" name="product_names"/>
<field column="UNIT_PRICE" name="product_price"/>
<field column="UNIT" name="product_description"/>
</entity>
</document>
</dataConfig>
注意:column 的值一定要大写,否则导数据不成功
在F:\test\solrdemo\solr\collection1\conf 中的solrconfig.xml 中添加:
<requestHandler name="/dataimport"
class="org.apache.solr.handler.dataimport.DataImportHandler">
<lst name="defaults">
<str name="config">data-config.xml</str>
</lst>
</requestHandler>
在F:\test\solrdemo\solr\collection1\conf 中的schema.xml 中添加:
<field name="product_names" type="text_ik" indexed="true" stored="true"/>
<field name="product_price" type="float" indexed="true" stored="true"/>
<field name="product_description" type="text_ik" indexed="true" stored="true" />
<field name="product_keywords" type="text_ik" indexed="true" stored="false" multiValued="true"/>
<copyField source="product_names" dest="product_keywords"/>
<copyField source="product_description" dest="product_keywords"/>
重启tomcat ,选择dataimport 菜单测试。
四,使用java 代码访问solr
package com.boce;
import java.io.IOException;
import org.apache.solr.client.solrj.SolrQuery;
import org.apache.solr.client.solrj.SolrServer;
import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.client.solrj.impl.HttpSolrServer;
import org.apache.solr.client.solrj.response.QueryResponse;
import org.apache.solr.client.solrj.response.UpdateResponse;
import org.apache.solr.common.SolrDocument;
import org.apache.solr.common.SolrDocumentList;
import org.apache.solr.common.SolrInputDocument;
public class SolrOk {
private String url = "http://localhost:8080/solr";
// 创建索引
public void testCreateIndex() throws SolrServerException, IOException {
String urlString = "http://localhost:8080/solr";
SolrServer solrServer = new HttpSolrServer(urlString);
for (int i = 0; i < 5; i++) {
SolrInputDocument document = new SolrInputDocument();
document.addField("id", "c0001");
document.addField("product_names", "竞买"+i);
// 商品名称
document.addField("product_price", 86.5f);
// 商品价格
// document.addField("product_picture", "382782828.jpg");
// 商品图片
document.addField("product_description",
"这是竞买信息的描述,内容渤海商品交易所信息内容");
//商品描述
// document.addField("product_catalog_name", "javabook");
// 商品分类
UpdateResponse response = solrServer.add(document);
}
// 提交
solrServer.commit();
}
public void deletebyId(){
String id="vg106422";
SolrServer solrServer = new HttpSolrServer(url);
try {
UpdateResponse response = solrServer.deleteById(id);
solrServer.commit();
} catch (SolrServerException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void testSearch() throws SolrServerException {
String urlString = "http://localhost:8080/solr";
SolrServer solr = new HttpSolrServer(urlString);
// 查询对象
SolrQuery query = new SolrQuery();
// 设置查询条件,名称“q”是固定的且必须 的
// 搜索product_keywords域,product_keywords是复制域包括product_name和product_description
query.set("q", "product_names:竞买");
query.setStart(10);
query.setRows(50);
// 请求查询
QueryResponse response = solr.query(query);
// 查询结果
SolrDocumentList docs = response.getResults(); // 查询文档总数
System.out.println("查询文档总数" + docs.getNumFound());
for (SolrDocument doc : docs) {
// 商品主键
String id = (String) doc.getFieldValue("id");
// 商品名称
String product_name = (String) doc.getFieldValue("product_names");
// 商品价格
Float product_price = (Float) doc.getFieldValue("product_price");
// 商品价格
String desc = (String) doc.getFieldValue("product_description");
System.out.println(product_name + "--" + product_price+"---"+desc);
}
}
// 商品图片 String product_picture = (String)
// doc.getFieldValue("product_picture"); //商品分类 String product_catalog_name
// = (String) doc.getFieldValue("product_catalog_name");
// System.out.println("=============================");
// System.out.println(id); System.out.println(product_name);
// System.out.println(product_price); System.out.println(product_picture);
// System.out.println(product_catalog_name); }
public static void main(String[] args) {
SolrOk ok = new SolrOk();
try {
ok.testCreateIndex();
//ok.testSearch();
//ok.deletebyId();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
- IK_Analyzer_2012FF_hf1.zip (2 MB)
- 下载次数: 1
发表评论
-
solr 5.0 集群搭建
2018-01-13 14:55 599一,搭建zookeeper集群 1.下载zookeeper解压 ... -
elasticsearch环境搭建和api编程
2017-12-28 16:40 8861.下载 Elasticsearch ,下载地址:https: ... -
solr 5.0搭建 和使用 ik分词
2017-12-19 15:14 4871.将下载来的solr-5.0.0.zip解压。 创建D:\ ... -
eureka 服务搭建
2017-11-07 16:59 6641.新建一个springboot的项目。 2.添加pom.xm ... -
修改dubbox支持sping4
2017-09-12 09:03 4781.通过修改依赖jar包和修改部分代码,使dubbox可以在s ... -
jenkins自动构建发布程序
2017-08-31 10:28 16151.首先到 https://jenkins.io/ 下载win ... -
FastDFS分布式文件系统使用
2017-08-30 10:28 638安装参照: http://blog.csdn.net/hard ... -
RocketMQ 3.2.6 web监控程序
2017-08-04 14:09 6121.针对 rocketmq3.2.6监控代码在附件中 2. ... -
RocketMQ 3.2.6安装以及测试
2017-08-02 16:34 1692下载 alibaba-rocketmq-3.2.6.tar.g ... -
roketmq3.2.6
2017-04-20 15:30 431roketmq3.2.6 设置 #设置rocketmq的地址 ... -
uncode-schedule 学习
2017-04-11 16:34 574在多台机器都存在定时任务时,通过zookeeper 实现定 ... -
分布式锁 zookeeper
2017-04-06 11:27 402package zk.lock; import ja ... -
分布式锁实现两种方式
2017-03-16 17:13 554package org.gjp; import ja ... -
disconf使用
2017-03-07 10:33 696disconf 已经搭建成功(http://gjp014. ... -
disconf安装过程
2017-03-06 15:49 7031.首先下载 https://github.com/kn ... -
curator 实现分布式锁
2017-02-08 16:20 551package org.gjp; import j ...
相关推荐
Solr4.9是Apache Solr的一个版本,它是一个基于Lucene的全文搜索服务器,用于构建高效的、可扩展的搜索应用。在这个版本中,Solr提供了丰富的查询功能、高效的索引和搜索性能,以及灵活的数据处理能力。"solr4.9开发...
【Solr 4.9与Jetty的运行】 Apache Solr 是一个开源的搜索平台,它提供了全文检索、高亮显示、拼写建议等功能。在Solr 4.9版本中,可以与Jetty或Tomcat这样的Servlet容器进行集成,以实现更灵活的部署。 1. **Solr...
在4.9版本中,Solr引入了集群功能,以支持高可用性和可扩展性。在这个集群环境中,Tomcat作为Servlet容器运行Solr,而Zookeeper则作为分布式协调服务,管理整个集群的状态和配置。 一、Solr 4.9 集群的核心概念 1. ...
在这个版本中,安装和配置过程可能会有所不同,因此在学习Solr时,确保查阅对应版本的文档是非常重要的。 Apache Solr 的官方网站(http://wiki.apache.org/solr/)提供最全面和最新的文档,虽然这些文档通常是英文...
IKAnalyzer2012FF_x.jar 适用于Solr 4.9以上5.0以下版本 集合solr使用修改IKAnalyzerSolrFactory.java 以适合4.9以前版本报错问题 适用场景 Solr 4.9.x/4.10.x + IKAnalyzer JDK7+ Solr5.0版本不适用
文档中详细介绍了如何在ubuntu下面安装solr-4.9.0,以及在安装过程中出现的问题和解决办法
Solr 4.9.0 是一款开源的企业级全文搜索引擎,由Apache软件基金会开发并维护。这个版本的Solr提供了一套高度可扩展和高性能的搜索解决方案,支持大量的并发请求和大数据处理。以下是对Solr 4.9.0及其核心特性的详细...
Apache Solr 4.9 和 IKAnalyzer中文分词配置(上)-附件资源
### Solr 学习知识点详解 #### 一、Solr 概述 - **定义**:Solr 是 Apache 下的一个顶级开源项目,采用 Java 开发,它是基于 Lucene 的全文搜索服务器。Solr 可以独立运行在 Jetty、Tomcat 等 Servlet 容器中。 -...
SolrPost过滤器具有三个不同版本的基本 Solr 后置过滤器。 1_Basic - 每个 42 的倍数的 id 将留在结果集中2_Adjustable - 现在可以更改模数3_DocValues - 使用 DocValues 访问 id 字段
**SOLR学习指南** Apache SOLR是一款开源的企业级全文搜索引擎,它被广泛应用于网站内容检索、电商商品搜索、文档数据库搜索等领域。SOLR以其高效、可扩展性以及丰富的特性和配置选项而受到广大开发者的青睐。在这...
mmseg4j-solr-2.2.0-with-mmseg4j-core.zip是一个专门为Solr 4.9版本设计的中文分词解决方案,旨在提升中文搜索的准确性和效率。 mmseg4j是基于Java实现的中文分词库,全称为“Minimum Edit Distance Segmentation ...
例如,提供的`apache-solr-ref-guide-4.9.pdf`应该是针对Solr 4.9版本的。这本指南详尽地列出了Solr的所有API、配置选项和操作指南,是开发者进行问题排查和功能实现的重要参考资料。虽然可能不如前面两本书通俗易懂...
【Solr 学习资料详解】 Solr 是一个基于 Apache Lucene 的全文搜索服务器,它为企业提供了高效、可扩展的搜索解决方案。Solr 不仅提供了丰富的查询语言,还优化了索引和搜索性能,使得在大型网站、电子商务平台等...
### Solr 学习笔记:关键命令使用说明 Solr 是一个开源的、高性能的全文检索引擎,基于 Java 开发,常被用于大型网站的搜索系统。本文将围绕给定内容中的关键命令进行详细的解析,主要包括 Solr 的启动、集群管理、...
### Solr学习入门教程知识点详解 #### 一、Solr概览 Solr是一个开源的企业级搜索服务器,采用Java作为底层开发语言,具备高度的可扩展性和灵活性。它通过标准的HTTP协议和XML格式进行通信,这意味着即使不精通Java...
### SOLR学习笔记 #### 一、Solr简介与特点 **Solr** 是一种开源的企业级搜索平台,它是基于 **Lucene Java** 构建的。Solr 的设计目标是为了提供高性能、高可用性的搜索服务,适用于各种规模的企业级应用。 **...