`

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安装使用手册

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

    Solr参考书籍

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

    thymeleaf_3.0.5_中文参考手册

    通过这个项目,我们可以学习到如何将 Thymeleaf 集成到 Web 应用程序中,以及如何利用它的功能来增强页面的表现力。 **2.2 创建和配置模板引擎** - **2.2.1 模板解析器**: 模板解析器负责将物理模板文件与应用程序...

    基于Python的天气预测和天气可视化项目源码+文档说明(高分毕设/大作业)

    基于Python的天气预测和天气可视化项目源码+文档说明(高分毕设/大作业),个人经导师指导并认可通过的高分设计项目,评审分99分,代码完整确保可以运行,小白也可以亲自搞定,主要针对计算机相关专业的正在做大作业的学生和需要项目实战练习的学习者,可作为毕业设计、课程设计、期末大作业,代码资料完整,下载可用。 基于Python的天气预测和天气可视化项目源码+文档说明(高分毕设/大作业)基于Python的天气预测和天气可视化项目源码+文档说明(高分毕设/大作业)基于Python的天气预测和天气可视化项目源码+文档说明(高分毕设/大作业)基于Python的天气预测和天气可视化项目源码+文档说明(高分毕设/大作业)基于Python的天气预测和天气可视化项目源码+文档说明(高分毕设/大作业)基于Python的天气预测和天气可视化项目源码+文档说明(高分毕设/大作业)基于Python的天气预测和天气可视化项目源码+文档说明(高分毕设/大作业)基于Python的天气预测和天气可视化项目源码+文档说明(高分毕设/大作业)基于Python的天气预测和天气可视化项目源码+文档说明(高分毕设/大作业)基于Python的天气预测和天气可视化项目源码+文档说明(高分毕设/大作业)基于Python的天气预测和天气可视化项目源码+文档说明(高分毕设/大作业)基于Python的天气预测和天气可视化项目源码+文档说明(高分毕设/大作业)基于Python的天气预测和天气可视化项目源码+文档说明(高分毕设/大作业)基于Python的天气预测和天气可视化项目源码+文档说明(高分毕设/大作业)基于Python的天气预测和天气可视化项目源码+文档说明(高分毕设/大作业)基于Python的天气预测和天气可视化项目源码+文档说明(高分毕设/大作业)基于Python的天气预测和天气可视化项目源码+文档说明(高分毕设/大作业

    2025工业5G终端设备发展报告.pdf

    2025工业5G终端设备发展报告.pdf

    基于分布式ADMM算法与碳排放交易的MATLAB代码:电力系统优化调度

    内容概要:本文介绍了一段基于分布式ADMM算法的MATLAB代码,用于电力系统优化调度,尤其关注碳排放交易的影响。代码首先对电力系统进行分区,接着构建DC-DOPF最优潮流问题,考虑碳排放交易的成本,并利用ADMM算法求解。文中详细解释了各个关键步骤,如系统分区、目标函数设计、碳排放交易成本计算以及ADMM算法的具体实现。此外,代码还包括了多种优化技术和实用技巧,如自适应惩罚因子调整、边界条件处理等,确保算法的有效性和实用性。 适用人群:适用于对电力系统优化调度感兴趣的科研人员、工程师和技术爱好者,尤其是希望深入了解分布式算法和碳排放交易机制的人群。 使用场景及目标:①研究电力系统优化调度的新方法和技术;②探讨碳排放交易对电力系统调度策略的影响;③提高电力系统运行效率和环保性能。 其他说明:代码不仅提供了详细的注释和模块化设计,还展示了丰富的可视化结果,便于理解和进一步研究。同时,文中提到了一些实际应用案例,证明了该方法的有效性和优越性。

    IDEA中本地运行配置文件

    适配于jdk8版本

    dify-course-demo.yml

    自动化生成全套教程

    【GRP-U8软件维护】GRP-U8软件常见问题及解决方案:涵盖账务处理、自定义凭证打印、期初余额导入、双凭证模式调整、电子报表、工资模块、资产管理、物资管理、网上报销、预算编制、学生收费、安装配置及

    内容概要:本文档《GRP_U8软件近期常见问题85例.docx》详细列出了GRP_U8软件在实际使用过程中遇到的85个常见问题及其解决方案。这些问题涵盖了账务处理、电子报表、工资模块、资产管理、物资管理、成本模块、网上报销、预算编制、学生收费、安装配置以及基础数据管理等多个方面。每个问题不仅描述了现象,还提供了具体的解决步骤或SQL语句。文档强调在执行任何脚本前务必进行整库备份,并提供了维护问题的联系方式。 适合人群:适用于GRP_U8软件的管理员、技术支持人员及有一定数据库操作基础的用户。 使用场景及目标:①帮助用户快速定位并解决GRP_U8软件在账务处理、报表生成、工资管理、资产管理等模块中遇到的具体问题;②提供详细的SQL语句和操作指南,确保用户能够独立解决问题,减少对技术支持的依赖;③指导用户在遇到软件安装、配置及升级相关问题时采取正确的措施。 其他说明:文档内容正在不断完善中,用户可以通过私信反馈意见和建议。此外,文档中多次强调了数据安全的重要性,提醒用户在执行任何操作前做好备份工作。针对某些特定问题,文档还提供了多种解决方案供用户选择,以适应不同的环境和需求。

    少儿编程scratch项目源代码文件案例素材-scratch RPG 战斗.zip

    少儿编程scratch项目源代码文件案例素材-scratch RPG 战斗.zip

    基于模型预测控制(MPC)的无人艇分布式编队协同控制仿真与实现

    内容概要:本文详细介绍了利用模型预测控制(MPC)实现无人艇分布式编队协同控制的方法和技术。首先,通过简化的动力学模型和MATLAB代码展示了无人艇的基本行为预测。接着,深入探讨了编队协同控制的关键要素,包括代价函数的设计、信息交换机制以及分布式MPC的具体实现步骤。文中还提供了具体的Python代码示例,涵盖了从单个无人艇的动力学建模到多智能体之间的协作控制。此外,作者分享了一些实用技巧,如如何处理通信延迟、传感器噪声等问题,并展示了仿真效果,证明了所提出方法的有效性和鲁棒性。 适合人群:对无人艇编队控制、模型预测控制(MPC)、分布式系统感兴趣的科研人员、工程师及高校学生。 使用场景及目标:适用于研究和开发无人艇编队控制系统,特别是希望通过分布式控制实现高效、灵活的编队任务。目标是在复杂的海洋环境中,使无人艇能够自主完成编队、跟踪指定路径并应对各种干扰因素。 其他说明:文中提供的代码片段和理论解释有助于理解和实现无人艇编队控制的实际应用。建议读者在实验过程中结合实际情况进行参数调整和优化。

    操作系统实验2内存管理实验

    (3)编写程序验证FIFO和Stack LRU页面置换算法 (4)分别用FIFO和Stack LRU页置换算法,自己设定一个页面引用序列,绘制页错误次数和可用页帧总数的曲线并对比(可用Excel绘制或手绘);能否重现FIFO导致的Belady异常; (5)[选做]编程实现最优页置换算法,用课件上的序列验证。

    机器学习(深度学习):一个用于骨折分类的医学图像数据集

    一个用于骨折分类的医学图像数据集,旨在通过计算机视觉技术帮助研究人员和医疗专业人员准确识别和分类骨折类型。以下是关于该数据集的详细介绍。该数据集包含了多种类型的骨折X光图像,涵盖了常见的骨折类别,如撕脱性骨折(Avulsion Fractures)、粉碎性骨折(Comminuted Fractures)、骨折脱位(Fracture-Dislocations)、青枝骨折(Greenstick Fractures)、发际线骨折(Hairline Fractures)、嵌插性骨折(Impacted Fractures)、纵向骨折(Longitudinal Fractures)、斜行骨折(Oblique Fractures)、病理性骨折(Pathological Fractures)和螺旋形骨折(Spiral Fractures)等。多样性:数据集中的图像来自不同的骨折类型,能够为模型训练提供丰富的样本。高质量标注:数据由专业放射科医生手动标记,确保了数据的准确性和可靠性。适用性:该数据集适用于机器学习和深度学习项目,可用于开发自动化骨折分类系统。该数据集主要用于训练和验证计算机视觉模型,以实现从X光图像中自动识别和分类骨折类型。通过自动化骨折分类,可以提高医疗诊断的效率和准确性,减少人为误判,并帮助医疗专业人员更快地做出决策。是一个极具价值的医学图像数据集,能够为医疗领域的研究人员和从业者提供有力支持,推动医学影像分析技术的发展。

    互联网的兴起与数字未来

    本书《互联网的历史与数字未来》由约翰尼·瑞安撰写,探讨了互联网从诞生到成为全球性现象的历程。书中分为三个阶段:分布式网络与离心思想的兴起、互联网的扩展以及新兴环境下的互联网。第一阶段追溯了互联网概念的起源,包括冷战背景下的军事实验和计算机技术的普及。第二阶段描述了互联网如何从军事网络演变为全球互联网,并催生了万维网。第三阶段则探讨了Web 2.0的出现、网络社会的形成以及互联网对政治、文化和商业的深远影响。瑞安强调了互联网作为离心力、用户驱动和开放性的三个核心特征,并指出这些特征正在重塑我们的世界。

    易语言进程封包截取工具

    进程封包截取神器,支持TCP和UDP协议封包拦截

    最新版kibana-9.0.0-linux-x86-64.tar.gz

    最新版kibana-9.0.0-linux-x86_64.tar.gz

    子查询练习题,多练习总没有坏处,不知道凑没凑够十一个字

    子查询练习题,多练习总没有坏处,不知道凑没凑够十一个字

    可见光近红外波段VO2介电常数的Matlab计算与COMSOL仿真教程

    内容概要:本文详细介绍了如何利用Matlab计算二氧化钒(VO2)在可见光到近红外波段的介电常数,并将其应用于COMSOL多物理场仿真软件进行光学性能仿真。主要内容包括:VO2在不同温度下的相变特性及其对折射率的影响;基于Lorentz和Drude模型的介电常数计算方法;Matlab代码实现步骤;COMSOL中材料参数的导入与设置;以及常见错误提示和解决方案。文中还附带了一个详细的30分钟教学视频,帮助读者更好地理解和掌握整个流程。 适合人群:对光学材料、相变材料感兴趣的科研工作者和技术人员,尤其是从事智能窗户、光学开关等领域研究的人士。 使用场景及目标:① 学习并掌握VO2在不同温度下的光学特性和相变机制;② 利用Matlab和COMSOL进行材料参数计算和仿真,为实际应用提供理论支持;③ 解决仿真过程中可能出现的问题,提高仿真精度。 阅读建议:建议读者跟随文中的代码示例逐步操作,结合提供的教学视频加深理解。对于初学者来说,可以先熟悉Matlab的基本语法和COMSOL的操作界面,再尝试完成完整的仿真流程。

    COMSOL模拟激光打孔热应力耦合分析及优化方法

    内容概要:本文详细介绍了利用COMSOL Multiphysics进行激光打孔过程中热应力耦合仿真的具体步骤和技术要点。首先,通过建立波动光学和固体力学两个物理场,精确模拟了1064nm激光与材料相互作用产生的温度场变化及其引起的热膨胀效应。接着,针对热源加载、网格划分、求解器配置等方面进行了深入探讨,提出了多项创新性的解决方案,如采用移动高斯热源实现精准加热、引入时间条件判断调整热膨胀系数以及优化网格布局等措施。此外,还讨论了材料参数设置中的注意事项,尤其是对于高温合金材料,在不同温度区间内的导热系数和弹性模量的变化规律,并强调了相变潜热的影响。最后,通过对温度场和应力场的综合分析,揭示了激光移动速度对孔洞边缘应力分布的影响机制。 适用人群:从事激光加工、材料科学、热力学研究的专业人士,以及对多物理场耦合仿真感兴趣的科研工作者。 使用场景及目标:适用于希望深入了解激光打孔过程中热应力形成机理的研究人员;旨在提高加工精度、减少缺陷发生的工程技术人员;希望通过理论模型指导实际生产的制造业从业者。 其他说明:文中提供了大量MATLAB代码片段用于辅助理解和实施相关操作,同时分享了许多实用的经验技巧,帮助读者更好地掌握COMSOL软件的应用。

    永磁同步电机全速度域无位置传感器控制技术与切换策略研究

    内容概要:本文详细探讨了永磁同步电机(PMSM)在全速度范围内实现无位置传感器控制的技术方法和切换策略。针对高速和低速段分别介绍了超螺旋滑模控制和脉振高频方波注入的具体实现方式,并提供了相应的代码示例。对于切换策略,则讨论了加权切换和双坐标切换的方法,强调了在实际应用中需要注意的问题,如角度补偿和平滑过渡。此外,还分享了一些实用的经验技巧,如高频注入信号的滤波处理、滑模控制参数的优化设置等。 适合人群:从事电机控制系统设计的研究人员和技术工程师。 使用场景及目标:适用于需要深入了解PMSM无位置传感器控制技术的研发项目,旨在帮助工程师掌握不同速度范围内的最优控制策略,确保系统在全速域内的稳定性和可靠性。 其他说明:文中提供的代码片段和实践经验有助于读者更好地理解和实施相关技术,同时也提醒读者在实际应用中应注意参数调整和系统调试。

Global site tag (gtag.js) - Google Analytics