Solr简介

  • 采用Java5开发,基于Lucene的全文搜索服务器。同时对其进行了扩展,提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展并对查询性能进行了优化,并且提供了一个完善的功能管理界面,是一款非常优秀的全文搜索引擎

  • Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口。用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引;也可以通过Http GSolret操作提出查找请求,并得到XML格式的返回结果

Solr与lucene关系

  • Lucene是一套信息检索工具包,但并不包含搜索引擎系统,它包含了索引结构、读写索引工具、相关性工具、排序等功能,因此在使用Lucene时你仍需要关注搜索引擎系统,例如数据获取、解析、分词等方面的东西

  • 首先Solr是基于Lucene做的,Solr的目标是打造一款企业级的搜索引擎系统,因此它更接近于我们认识到的搜索引擎系统,它是一个搜索引擎服务,通过各种API可以让你的应用使用搜索服务,而不需要将搜索逻辑耦合在应用中。而且Solr可以根据配置文件定义数据解析的方式,更像是一个搜索框架,它也支持主从、热换库等操作。还添加了高亮、facet等搜索引擎常见功能的支持

Solr的搭建与运行

  • 解压solr-4.6.0.zip到你想到存放的路径,比如:e:/solr

  • cmd打开命令行窗口,进入E:/solr/example目录

  • 执行命令:java -jar start.jar

  • 通过第三步以后,系统会启动solr自带的jetty服务器,通过http://localhost:8983/solr/便可访问solr

  • 此时,solr已成功启动

界面如上所示。

Solr技术路线图

Solr图形化管理界面

菜单

Core
Admin

搜索功能

当点击搜索区域

会出现如下的列表

增加document

点击上图的Documents,可以看到

编写一个json格式的对象:

显示:

成功生成了一个document对象

搜索

打开界面:

执行

Xml与solr

Xml文件的导入

当执行如下的操作的时候

可以把hd.xml文件中的内容创建Document对象,引入到solr中。

Xml文件的查询

hd.xml文件的部分内容

查询到的内容:

浏览器的查询

Solrj

Schema

是solr中很重要的一个配置文件

路径

元素

Field

说明

      • 为字段

      • Name为字段的名称

      • Type为字段的类型

      • Indexed是否为该字段建立索引

      • Stored是否存储该字段

      • Required是否是必须的

dynamicField

<dynamicField
name="*_s" type="string" indexed="true"
stored="true"/>

说明:

          • 为动态属性

          • Name=”*_i”*可以代表任何字母

doc.addField("namessss_s",
"赵栋");这个是可以匹配的

uniqueKey

<uniqueKey>id</uniqueKey>

说明

表示唯一的一个document的标示是id

Solr与数据库

Select

在collection1/config/solrconfig.xml文件中,有一个配置

所有的查询是由SearchHandler处理的。

Update

Dataimport

当打开solr的管理界面时

点击上图的Dataimport,这个时候,浏览器的地址是

会请求一个dataimport的域,但是提示结果为:

说明没有dataimport-handler定义。

解决方案:

1、修改solrconfig.xml文件,添加如下的代码:

2、在

目录下,copy如下的jar包和数据库驱动的jar包,加入到solr工程中

工程的结构为:

3、创建data-config.xml文件,放入到config目录下

<?xml version="1.0" encoding="UTF-8" ?>

<dataConfig>

<dataSource type="JdbcDataSource"

driver="com.mysql.jdbc.Driver"

url="jdbc:mysql://localhost:3306/itheima09_solr"

user="root"

password="root"/>

<document>

<entity name="id" query="select id,name,manu from solr"></entity>

</document>

</dataConfig>

4、重新启动solr服务器

5、打开浏览器界面,点击dataimport

执行完成以后,数据库的表的数据就被导入到了索引库中。

Solr搜索引擎服务器学习笔记的更多相关文章

  1. Solr 6.7学习笔记(02)-- 配置文件 managed-schema (schema.xml) -- 样例(6)

    managed-schema 样例: <?xml version="1.0" encoding="UTF-8" ?> <!-- License ...

  2. Solr 6.7学习笔记(02)-- 配置文件 managed-schema (schema.xml)(3)

         5. <fieldType> fieldType主要定义了一些字段类型,其name属性值用于前面<field>中的type属性的值.e.g. <fieldTyp ...

  3. Solr 6.7学习笔记(04)-- Suggest

    当我们使用baidu或者Google时,你输入很少的字符,就会自动跳出来一些建议选项,在Solr里,我们称之为Suggest,在solrconfig.xml里做一些简单的配置,即可实现这一功能.配置如 ...

  4. Solr 6.7学习笔记(02)-- 配置文件 managed-schema (schema.xml) - filter(5)

    自定义fieldType时,通常还会用到filter.filter必须跟在tokenizer或其它filter之后.如: <fieldType> <analyzer> < ...

  5. 服务器学习笔记之servlet

    初衷 想学习下服务器这边的知识,制定了一条学习路线:java8--->servlet--->springMvc--->springBoot--->springCloud.在此当 ...

  6. Kestrel Web 服务器学习笔记

    前言: ASP.NET Core 已经不是啥新鲜的东西,很多新启的项目都会首选 Core 做开发: 而 Kestrel 可以说是微软推出的唯一真正实现跨平台的 Web 服务器了: Kestrel 利用 ...

  7. Solr 6.7学习笔记(02)-- 配置文件 managed-schema (schema.xml)(1)

    刚学Solr(版本6.7.0),新建一个core时,提示要求schema.xml文件,我找了半天也没在源码包中找到名为schema.xml的文件.这个版本其实用的是managed-schema文件,没 ...

  8. 配置好solr搜索引擎服务器后java后台如何将商品信息导入索引库

    首先,在配置文件目录中添加solr 服务器的bean 配置文件 solr服务器的url可以写在配置文件中: url地址其实就是我们网页可以访问的solr地址: 然后我们写 service packag ...

  9. 游戏服务器学习笔记 5———— twisted Perspective Broker 透明代理

    实际上这章压根不需要我来说,twisted官网的Doc里面有专门介绍的章节.写的非常详细. http://twistedmatrix.com/documents/current/core/howto/ ...

随机推荐

  1. Springboot项目创建文件中相对路径问题

    Springboot项目创建文件中相对路径问题 原代码: String location = "./src/main/resources/UsersFiles/" + userId ...

  2. Docker - Docker Engine 结构结构概述

    概述 Docker Engine 结构的简单描述 ref docker 实战 第一本 docker 书 1. docker 版本 1. 版本 Docker Engine - Community 概述 ...

  3. 在 input 上添加图标字体时无法添加的问题

    效果:一个搜索框.如图: 实施过程:一开始,将搜索框分为2部分,用2个 input ,一个 search ,一个 button ,然后给 type="button" 的input ...

  4. mybatis - mapper.java 的创建

    一. Mapper.java 创建过程 在前面注册 bean 的时候, 对beanClass 进行了替换, 为 MapperFactoryBean. 那么创建实例的时候, 会调用 MapperFact ...

  5. JAVA基础学习(1)之计算

    1.0计算机与编程语言 1.0.1计算机与编程语言 计算机解决问题 人:What to do 计算机:How to do 编程语言 描述要求计算机如何做事情的过程或方法 算法 计算=算法—>编程 ...

  6. 微信支付开发h5调用

    这两天做微信支付开发.碰到大坑.纠结死我了.好不容做完. 后台java:直接上代码:注意区分前后端的变量大小写... @RequestMapping(value = "/index" ...

  7. Python socket day1

    客户端和服务端通过ip地址确认互相身份.(ip:用来在网络中标记一台电脑) 如果A,B两个人IP地址相同,接受到的信息有时候A收到,有时候B收到 当你用QQ时,双击选中头像其实就是选中了对方的IP地址 ...

  8. dfs(学姐的红包)

    链接:https://ac.nowcoder.com/acm/contest/3402/I    盼啊,盼啊,伴随着时钟的敲响,我们即将迎来了美好的传统佳节-春节.为了给新年增添浓浓节日气息,师弟师妹 ...

  9. 2_1 aabb

    输出所有形如aabb的4位完全平方数(即前两位数字相等,后两位数字也相同).

  10. Xcode创建子工程以及工程依赖

    https://www.jianshu.com/p/f2bc7d155a86 阅读 7858 视频地址 如果文章不详细,点击看操作视频 项目需求:代码抽层,业务逻辑和数据处理要高度抽离,模块化,需要将 ...