`
liuquanjc
  • 浏览: 59041 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

搜索引擎solr研究-从数据库创建索引

阅读更多

solr功能非常强大,可以建立各种数据的索引,常见的企业应用中,少不了数据库的索引的创建,可以通过写程序 可以将数据读出100条,如果你的内存够大,可以是1000条甚至更多,然后放入Collection中,批量提交至solr。或者读取数据写入xml文件中,再将该文件提交到solr等等。但是,solr也只带了数据库创建索引的功能,步骤如下:

一、通过solr自带的example
准备工作:
1、在apache官网下载 apache-solr-1.3.0.zip
2、下载mysql、hsql驱动(下面例子会用到)

环境描述:
1、tomcat版本 6.0.29  位置:D:\tomcat6.0.29   设置环境变量:CATALINA_HOME=D:\tomcat6.0.29
2、jdk1.5

步骤:
1、解压缩apache-solr-1.3.0.zip copy apache-solr-1.3.0\example\solr  文件夹到D:\tomcat6.0.29,目录结构为D:\tomcat6.0.29\solr
2、copy apache-solr-1.3.0\dist\apache-solr-common-1.3.0.jar 到D:\tomcat6.0.29\webapps\,兵将apache-solr-common-1.3.0.jar 改为solr.jar,tomcat会自动解压缩该文件,生成solr文件夹,copy上面下载的mysql、hsql驱动包到D:\tomcat6.0.29\webapps\solr\WEB-INF\lib下
3、copy apache-solr-1.3.0\example\solr里面内容到 D:\tomcat6.0.29\solr里面
4、删除D:\tomcat6.0.29\solr\rss,修改D:\tomcat6.0.29\sorl\solr.xml  文件,去掉<core default="true" instanceDir="rrs" name="rrs"></core>该行
5、copy apache-solr-1.3.0\example\example-DIH 目录到D:\tomcat6.0.29,解压缩hsqldb.zip到当前文件夹,改文件为hsql数据库文件
6、到此,完成,

运行测试:
开始-运行  cmd  进入命令行,切换目录到D:\tomcat6.0.29,输入bin\startup.bat,启动tomcat6,如果上面配置无误,可以查看tomcat日志看是否有错误,确定无错后,在浏览器输入http://127.0.0.1:8080/solr/db/dataimport?command=full-import,既可以看到输出

二、测试mysql数据库
环境和创建的文件夹延续上面的
步骤:
1、在D:\tomcat6.0.29\solr下创建mysqltest文件夹,copy D:\tomcat6.0.29\solr\db 里面的内容到D:\tomcat6.0.29\solr\mysqltest
2、修改D:\tomcat6.0.29\solr\solr.xml文件内容为
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<solr sharedLib="lib" persistent="true">
    <cores adminPath="/admin/cores">
        <core default="true" instanceDir="mysqltest" name="mysqltest"></core>
    </cores>
</solr>
3、修改D:\tomcat6.0.29\solr\mysqltest\conf\db-data-config.xml 内容为:
<dataConfig>
     <dataSource type="JdbcDataSource" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://127.0.0.1:3306/test" user="root" password=""/> 
     <document name="mybook"> 
             <entity name="book" pk="id" query="select * from book"> 
             <field column="id" name="id" /> 
             <field column="bookname" name="bookname" /> 
             <field column="bookathor" name="bookathor" />
         </entity> 
     </document>
</dataConfig>
4、因为bookname、bookathor2个字段在D:\tomcat6.0.29\solr\mysqltest\conf\schema.xml不存在,所以,要增加着2个field
<field name="bookname" type="string" indexed="true" stored="true" required="true" />
   <field name="bookathor" type="string" indexed="true" stored="true" required="true" />
注意:在该文件有<field  的地方增加,

5、将D:\tomcat6.0.29\solr\mysqltest\conf\solrconfig.xml
中<dataDir>${solr.data.dir:./solr/mysqltest/data}</dataDir>
改为<dataDir>${solr.data.dir:./solr/db/data}</dataDir>

6、到此完成
运行测试:
开始-运行  cmd  进入命令行,切换目录到D:\tomcat6.0.29,输入bin\startup.bat,启动tomcat6,如果上面配置无误,可以查看tomcat日志看是否有错误,确定无错后,在浏览器输入http://127.0.0.1:8080/solr/mysqltest/dataimport?command=full-import,既可以看到输出。通过上面访问,就创建了数据库索引
可以访问http://127.0.0.1:8080/solr/mysqltest/admin/,在Query String: 输入id:搜索内容(格式为  要搜索的字段:搜索关键字)来测试是否已经将数据表中的数据建立了索引,也可以在该界面修改搜索的参数

最后在说说这个功能。上面的例子只不过是很简单的一个部分。针对solr的MultiCore,通过配置db-data-config.xml也可以实现,还有多表,或者多表关联等等操作只要在db-data-config.xml配置清楚都可以进行数据的导入。
在solr1.4中还有更多的扩展功能,这些功能为重建索引提供能很方便的操作。而且,datasource不单单指的是database,可以是xml文件,还可以是来自网络上的等等。

 

分享到:
评论

相关推荐

    solr 企业搜索引擎教程

    更重要的是,Solr 创建的索引与 Lucene 搜索引擎库完全兼容。 通过对 Solr 进行适当的配置, 某些情况下可能需要进行编码,Solr 可以阅读和使用构建到其他 Lucene 应用程序中的索引。此 外,很多 Lucene 工具(如 Nutch、...

    自己动手写搜索引擎(罗刚著).doc

    自己动手写搜索引擎 1 第1章 了解搜索引擎 1 1.1 Google神话 1 1.2 体验搜索引擎 1 1.3 你也可以做搜索引擎 4 1.4 本章小结 4 第2章 遍历搜索引擎技术 5 2.1 30分钟实现的搜索引擎 5 2.1.1 准备工作环境(10分钟) 5...

    Knowledge-Engine:专门用于搜索教师信息的基于知识的搜索引擎

    基于知识的搜索引擎,专门用于搜索教师信息。 ##特征: 按学院名称搜索 按名称搜索 按部门搜索 按研究所搜索 按以上组合搜索。 即部门和研究所,指定和研究所等。 ##设置 从github下载代码 设置灯泡/wamp ...

    onsqlcodec:自定义 Apache Solr 编解码器,用于将基于 SolrCloud 的索引与 Oracle NoSQL 键值集群存储无缝集成

    这种方法大大减少了索引大小并加速了所有索引操作和合并,允许同时使用 Solr 作为 NoSQL 数据库和搜索引擎。 编解码器将存储的字段中继到 NOSQL 存储,同时将所有其他索引组件保留在通常的基于文件的存储布局中。 ...

    java开源包101

    AutoTips基于搜索引擎Apache Lucene实现。AutoTips提供统一UI。 WAP浏览器 j2wap j2wap 是一个基于Java的WAP浏览器,目前处于BETA测试阶段。它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是...

    java开源包1

    AutoTips基于搜索引擎Apache Lucene实现。AutoTips提供统一UI。 WAP浏览器 j2wap j2wap 是一个基于Java的WAP浏览器,目前处于BETA测试阶段。它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是...

    java开源包10

    AutoTips基于搜索引擎Apache Lucene实现。AutoTips提供统一UI。 WAP浏览器 j2wap j2wap 是一个基于Java的WAP浏览器,目前处于BETA测试阶段。它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是...

    JAVA上百实例源码以及开源项目

    在有状态SessionBean中,用累加器,以对话状态存储起来,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用完毕,从内存中清除…… Java Socket 聊天...

    JAVA上百实例源码以及开源项目源代码

    在有状态SessionBean中,用累加器,以对话状态存储起来,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用完毕,从内存中清除…… Java Socket 聊天...

    java开源包11

    AutoTips基于搜索引擎Apache Lucene实现。AutoTips提供统一UI。 WAP浏览器 j2wap j2wap 是一个基于Java的WAP浏览器,目前处于BETA测试阶段。它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是...

    java开源包2

    AutoTips基于搜索引擎Apache Lucene实现。AutoTips提供统一UI。 WAP浏览器 j2wap j2wap 是一个基于Java的WAP浏览器,目前处于BETA测试阶段。它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是...

    java开源包3

    AutoTips基于搜索引擎Apache Lucene实现。AutoTips提供统一UI。 WAP浏览器 j2wap j2wap 是一个基于Java的WAP浏览器,目前处于BETA测试阶段。它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是...

    java开源包6

    AutoTips基于搜索引擎Apache Lucene实现。AutoTips提供统一UI。 WAP浏览器 j2wap j2wap 是一个基于Java的WAP浏览器,目前处于BETA测试阶段。它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是...

    java开源包5

    AutoTips基于搜索引擎Apache Lucene实现。AutoTips提供统一UI。 WAP浏览器 j2wap j2wap 是一个基于Java的WAP浏览器,目前处于BETA测试阶段。它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是...

    java开源包4

    AutoTips基于搜索引擎Apache Lucene实现。AutoTips提供统一UI。 WAP浏览器 j2wap j2wap 是一个基于Java的WAP浏览器,目前处于BETA测试阶段。它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是...

    java开源包8

    AutoTips基于搜索引擎Apache Lucene实现。AutoTips提供统一UI。 WAP浏览器 j2wap j2wap 是一个基于Java的WAP浏览器,目前处于BETA测试阶段。它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是...

    java开源包7

    AutoTips基于搜索引擎Apache Lucene实现。AutoTips提供统一UI。 WAP浏览器 j2wap j2wap 是一个基于Java的WAP浏览器,目前处于BETA测试阶段。它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是...

    java开源包9

    AutoTips基于搜索引擎Apache Lucene实现。AutoTips提供统一UI。 WAP浏览器 j2wap j2wap 是一个基于Java的WAP浏览器,目前处于BETA测试阶段。它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是...

    Java资源包01

    AutoTips基于搜索引擎Apache Lucene实现。AutoTips提供统一UI。 WAP浏览器 j2wap j2wap 是一个基于Java的WAP浏览器,目前处于BETA测试阶段。它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是...

Global site tag (gtag.js) - Google Analytics