`

solr 4.9 学习

阅读更多
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();
}

}
}

  • 大小: 21.1 KB
  • 大小: 19.7 KB
  • 大小: 65.9 KB
  • 大小: 44 KB
  • 大小: 31.1 KB
分享到:
评论

相关推荐

    solr4.9开发所需jar包

    Solr4.9是Apache Solr的一个版本,它是一个基于Lucene的全文搜索服务器,用于构建高效的、可扩展的搜索应用。在这个版本中,Solr提供了丰富的查询功能、高效的索引和搜索性能,以及灵活的数据处理能力。"solr4.9开发...

    solr4.9与tomcat8,tomcat7整合

    【Solr 4.9与Jetty的运行】 Apache Solr 是一个开源的搜索平台,它提供了全文检索、高亮显示、拼写建议等功能。在Solr 4.9版本中,可以与Jetty或Tomcat这样的Servlet容器进行集成,以实现更灵活的部署。 1. **Solr...

    solr4.9+tomcat+zookeeper集群

    在4.9版本中,Solr引入了集群功能,以支持高可用性和可扩展性。在这个集群环境中,Tomcat作为Servlet容器运行Solr,而Zookeeper则作为分布式协调服务,管理整个集群的状态和配置。 一、Solr 4.9 集群的核心概念 1. ...

    solr4.9安装使用手册

    在这个版本中,安装和配置过程可能会有所不同,因此在学习Solr时,确保查阅对应版本的文档是非常重要的。 Apache Solr 的官方网站(http://wiki.apache.org/solr/)提供最全面和最新的文档,虽然这些文档通常是英文...

    IKAnalyzer2012FF_x.jar 适用于Solr 4.9以上5.0以下版本

    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下安装solr4.9详细介绍

    文档中详细介绍了如何在ubuntu下面安装solr-4.9.0,以及在安装过程中出现的问题和解决办法

    solr4.9.0.zip

    Solr 4.9.0 是一款开源的企业级全文搜索引擎,由Apache软件基金会开发并维护。这个版本的Solr提供了一套高度可扩展和高性能的搜索解决方案,支持大量的并发请求和大数据处理。以下是对Solr 4.9.0及其核心特性的详细...

    Apache Solr 4.9 和 IKAnalyzer中文分词配置(上)-附件资源

    Apache Solr 4.9 和 IKAnalyzer中文分词配置(上)-附件资源

    solr的学习

    ### Solr 学习知识点详解 #### 一、Solr 概述 - **定义**:Solr 是 Apache 下的一个顶级开源项目,采用 Java 开发,它是基于 Lucene 的全文搜索服务器。Solr 可以独立运行在 Jetty、Tomcat 等 Servlet 容器中。 -...

    SolrPostFilter:Solr 4.9 的后置过滤器示例

    SolrPost过滤器具有三个不同版本的基本 Solr 后置过滤器。 1_Basic - 每个 42 的倍数的 id 将留在结果集中2_Adjustable - 现在可以更改模数3_DocValues - 使用 DocValues 访问 id 字段

    SOLR的学习资料

    **SOLR学习指南** Apache SOLR是一款开源的企业级全文搜索引擎,它被广泛应用于网站内容检索、电商商品搜索、文档数据库搜索等领域。SOLR以其高效、可扩展性以及丰富的特性和配置选项而受到广大开发者的青睐。在这...

    mmseg4j-solr-2.2.0-with-mmseg4j-core.zip

    mmseg4j-solr-2.2.0-with-mmseg4j-core.zip是一个专门为Solr 4.9版本设计的中文分词解决方案,旨在提升中文搜索的准确性和效率。 mmseg4j是基于Java实现的中文分词库,全称为“Minimum Edit Distance Segmentation ...

    Solr参考书籍

    例如,提供的`apache-solr-ref-guide-4.9.pdf`应该是针对Solr 4.9版本的。这本指南详尽地列出了Solr的所有API、配置选项和操作指南,是开发者进行问题排查和功能实现的重要参考资料。虽然可能不如前面两本书通俗易懂...

    solr学习资料

    【Solr 学习资料详解】 Solr 是一个基于 Apache Lucene 的全文搜索服务器,它为企业提供了高效、可扩展的搜索解决方案。Solr 不仅提供了丰富的查询语言,还优化了索引和搜索性能,使得在大型网站、电子商务平台等...

    solr学习笔记

    ### Solr 学习笔记:关键命令使用说明 Solr 是一个开源的、高性能的全文检索引擎,基于 Java 开发,常被用于大型网站的搜索系统。本文将围绕给定内容中的关键命令进行详细的解析,主要包括 Solr 的启动、集群管理、...

    solr学习入门教程

    ### Solr学习入门教程知识点详解 #### 一、Solr概览 Solr是一个开源的企业级搜索服务器,采用Java作为底层开发语言,具备高度的可扩展性和灵活性。它通过标准的HTTP协议和XML格式进行通信,这意味着即使不精通Java...

    SOLR学习笔记

    ### SOLR学习笔记 #### 一、Solr简介与特点 **Solr** 是一种开源的企业级搜索平台,它是基于 **Lucene Java** 构建的。Solr 的设计目标是为了提供高性能、高可用性的搜索服务,适用于各种规模的企业级应用。 **...

Global site tag (gtag.js) - Google Analytics