Solr全文检索框架
概述:
什么是Solr?
Solr是Apache下的一个顶级开源项目,采用Java开发,它是基于Lucene的全文搜索服务.Solr可以独立运行在Jetty.tomcat.webLogic.webShell等这些Servlet容器中.
全文检索服务(也叫做全文搜索): 服务 是War包.
ES框架 也是基于Lucene,Lucene(是工具包 jar)
服务器: Tomcat Jetty(内嵌服务器) 免费的(私企)
WebLogic(Oracle)政府 Oracle
WebShell(IBM) 收费的 DB2
内嵌服务器和外部的服务器
Tomcat(外部) /webapps/war
War/lib/jetty.jar(内嵌) 稳定性差了点. 测试环境下使用.
1.开发环境 (软件开发工程师) jetty
2.测试环境 (测试工程师) 黑盒 白盒 (既能够测试功能,又能测试代码质量) jetty
3.生产环境 (线上运营) 京东,淘宝 等可以开始卖货了. tomcat
使用Solr进行创建索引和搜索索引的实现方法很简单,如下:
客户端: PHP C++ .NET JAVA
服务端:(War) 在tomcat上运行, 安装jdk, HTTP协议
要使用Solr的两步:
1. 安装服务端(服务端+索引库)
2.java写客户端(java代码可以写客户端,浏览器也可以充当客户端)
Solr的java客户端:
1.创建索引(包含了删,加,改): java客户端以POST方式,发送xml格式字符串给服务端, 服务端返回xml格式字符串.
2.搜索索引: java客户端Get方式 发送json或者xml 返回值json或者xml
后台管理中心(浏览器打开界面) 管理索引
删除
添加
修改
查询
(上面的统称为管理)
创建索引:客户端(可以是浏览器可以是java程序)用POST方法向Solr服务器发送一个描述Field及其内容的XML文档,Solr服务器根据xml文档添加,删除,更新索引.
搜索索引:客户端(可以是浏览器可以是JAVA程序)用GET方法向Solr服务器发送请求,然后对Solr服务器返回XML.json等格式的查询结果进行解析.Solr不提供构建页面UI的功能,Solr提供了一个管理界面,通过管理界面可以查询Solr的配置和运行情况.
Solr是一个可以独立运行的搜索服务器,使用solr进行全文检索服务的话,只需要通过http请求访问该服务器即可.
Solr和Lucene的区别?
Lucene是一个开放源代码的全文检索引擎工具包,它是一个完整的全文检索应用.Lucene仅提供了完整的查询引擎和索引引擎,目的是为软件开发人员提供一个简单易用的工具包,以方便的在目标系统中实现全文检索的功能,或者以Lucene为基础构建全文检索应用.
Solr的目标是打造一款企业级的搜索引擎系统,它是基于Lucene一个搜索引擎服务.可以独立运行,通过Solr可以非常快速的构建企业的搜索引擎,通过Solr也可以高效的完成站内搜索功能.

原来的方式,是直接通过web服务器,然后通过Lucene直接使用索引库,但是如果不使用Lucnene的时候,就直接使用Solr来连接索引库.
相对来说Lucene的速度更快,
简单的说 :
1.Lucene 是工具包 是jar包
2.Solr是索引引擎服务 War
3.Solr是基于Lucene(底层是由Lucene写的)
4.上面二个软件都是Apache公司由java写的
在Solr的后端界面

在Solr的集群的时候,会有Master(主人) Slave(奴隶)

Solr基于Lucene
ID域 必须有 不可重复 字符串类型(中文 正数)
名称域
描述域
价格域
路径域
有事务 提交事务
1.主动提交
2.自动提交,提前设置提交时间 毫秒
Overwrite
当ID相同时,可以进行覆盖
Boost 相关度
什么是相关度?
相关度 = 词出现的次数*Boost
相关度越高,在查询的时候,越靠前.
Solr全文检索框架的更多相关文章
- Haystack全文检索框架
一.什么是Haystack Haystack是django的开源全文搜索框架(全文检索不同于特定字段的模糊查询,使用全文检索的效率更高 ),该框架支持Solr,Elasticsearch,Whoosh ...
- 全文检索框架---Lucene
一.什么是全文检索 1.数据分类 我们生活中的数据总体分为两种:结构化数据和非结构化数据. 结构化数据:指具有固定格式或有限长度的数据,如数据库,元数据等. 非结构化数据:指不定长或无固定格式 ...
- SOLR (全文检索)
SOLR (全文检索) http://sinykk.iteye.com/ 1. 什么是SOLR 官方网站 http://wiki.apache.org/solr http://wiki.apach ...
- Haystack--基于Django的全文检索框架
好文章转载自:https://suguangti.cnblogs.com/p/11167097.html 阅读目录 1.什么是Haystack 2.安装 3.配置 4.处理数据 创建索引 5.设置视图 ...
- Haystack Python全文检索框架
Haystack 1.什么是Haystack Haystack是django的开源全文搜索框架(全文检索不同于特定字段的模糊查询,使用全文检索的效率更高 ),该框架支持Solr,Elasticsear ...
- solr全文检索原理及solr5.5.0 Windows部署
文章原理链接:http://blog.csdn.net/xiaoyu411502/article/details/44803859 自己稍微总结:全文检索主要有两个过程:创建索引,搜索索引 创建索引: ...
- Lucene全文检索框架
1.什么时Lucene? 是一个全文搜索框架,而不是应用产品,他只是一种工具让你能实现某些产品,并不像www.baidu.com拿来就能用 是apache组织的一个用java实现的全文搜索引擎的开源项 ...
- solr全文检索基本原理
场景:小时候我们都使用过新华字典,妈妈叫你翻开第38页,找到“坑爹”所在的位置,此时你会怎么查呢?毫无疑问,你的眼睛会从38页的第一个字开始从头至尾地扫描,直到找到“坑爹”二字为止.这种搜索方法叫做顺 ...
- solr全文检索实现原理
本文转自:https://blog.csdn.net/u014209975/article/details/53263642 https://blog.csdn.net/lihang_1994/ ...
随机推荐
- JS设计模式——观察者模式(通俗易懂)
Observer模式的概念 Observer模式是行为模式之一,它的作用是当一个对象的状态发生变化时,能够自动通知其他关联对象,自动刷新对象状态. Observer模式提供给关联对象一种同步通信的手段 ...
- ssh: connect to host xx.xx.xxx.xxx port 22: Connection refused
执行 ssh root@47.94.142.215 报错 首先要开启ssh 系统偏好设置-共享 选上远程登陆 选上远程管理 检测openssh-server是否安装成功 ,安装成功的如下 ps -e ...
- JavaScript 运行机制详解
一.为什么JavaScript是单线程? JavaScript语言的一大特点就是单线程,也就是说,同一个时间只能做一件事.那么,为什么JavaScript不能有多个线程呢?这样能提高效率啊. Java ...
- _T宏的使用
来源自百度. 他的作用是让你的程序支持Unicode编码, 因为Windows使用两种字符集ANSI和UNICODE, 前者就是通常使用的单字节方式, 但这种方式处理像中文这样的双字节字符不方便, ...
- 使用强类型DataSet增加数据并获取自动增长的ID
使用强类型的DataSet可以方便的操作数据库:有时候我们会对表的ID设置为自动增长,并且需要在插入数据后获取新插入数据的ID,按以下方法即可达到目的: 一. 首先建立一个表,id为自动增加, ...
- Linux命令 printf
定长: $ printf '%s\t%s\t%s\t%s\t%s\t\n' $(cat printf.txt) # %s 表示一个不固定长度的字符串:printf不是管道命令,因此需要通过类似cat的 ...
- MOT大连站 | 卓越研发之路:前沿技术落地实践
还在讨论究竟哪种编程语言更容易深度学习?哪种编程语言更具有价值?如果你是资深技术人员又或者是团队负责人,在机器学习.微服务.Spring 5反应式编程等方面遇到了问题,不妨参加一场由msup和微软联合 ...
- Centos Linux 下Pycharm 安装
原文链接 :https://www.cnblogs.com/shaosks/p/9173806.html 可以通过浏览器访问http://www.jetbrains.com/pycharm/,选择需要 ...
- join算法分析
对于单条语句,explain看下key,加个索引 多个条件,加复合索引 where a = ? order by b 加(a,b)的复合索引 上面都是比较基本的,这篇我们分析一些复杂的情况--join ...
- RoR - Creating and Modifying Table and Columns
自动生成的id 被当作primary key来使用 timestamp method生成 created_at 与 updated_at columns create_table 和 drop_tab ...