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

相关度越高,在查询的时候,越靠前.

原文地址:https://www.cnblogs.com/qingmuchuanqi48/p/10734889.html

时间: 2024-10-03 15:48:23

Solr全文检索框架的相关文章

全文检索框架

第一步:安装全文检索框架django-haystack pip3 install django-haystack 第二步:安装搜索引擎 pip3 install whoosh 第三步:在settings配置app INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.mes

全文检索框架Haystack,与 Whoosh搜索引擎的搭配以及相关配置

1. 安装Django项目下使用的django-haystack包, 以及搜索引擎whoosh包 pip install django-haystack pip install whoosh 2. Django项目文件中, settings添加haystack配置 # 全文检索框架的配置(haystack) HAYSTACK_CONNECTIONS = { 'default': { # 选择引擎(haystock包内的backend后端文件夹选中whoosh的相关配置文件的Engine函数) '

solr全文检索实现原理

Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口.用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引:也可以通过Http Get操作提出查找请求,并得到XML/Json格式的返回结果.采用Java5开发,基于Lucene. Lucene是apache软件基金会4 jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,即它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部

solr全文检索基本原理

场景:小时候我们都使用过新华字典,妈妈叫你翻开第38页,找到“坑爹”所在的位置,此时你会怎么查呢?毫无疑问,你的眼睛会从38页的第一个字开始从头至尾地扫描,直到找到“坑爹”二字为止.这种搜索方法叫做顺序扫描法.对于少量的数据,使用顺序扫描是够用的.但是妈妈叫你查出坑爹的“坑”字在哪一页时,你要是从第一页的第一个字逐个的扫描下去,那你真的是被坑了.此时你就需要用到索引.索引记录了“坑”字在哪一页,你只需在索引中找到“坑”字,然后找到对应的页码,答案就出来了.因为在索引中查找“坑”字是非常快的,因为

solr全文检索

注:首先说明:配置文件跟java代码完全没关系的,这里给出配置文件只是为了熟悉solr 完整的文件我会放到百度网盘,自行下载 链接:https://pan.baidu.com/s/1LmjdiML0USJ00TjnZ-yHrQ 提取码:jedv 1.我们先看配置文件 db-data-config  (路径:D:\solr-5.5.5\server\solr\demand\conf) 注意:本人建议自己先单表的,先别多表查询,查询语句别用 select * ,好像不支持 <dataConfig>

lucene&amp;solr全文检索_5索引的维护

增加新内容的时候,或者删除的时候我们需要对索引进行增删改查来进行索引的维护. 先上代码: package come.me.lucene; //索引维护 import java.io.File; import org.apache.lucene.analysis.Analyzer; import org.apache.lucene.analysis.standard.StandardAnalyzer; import org.apache.lucene.document.Document; impo

lucene&amp;solr全文检索_7solr后台界面的介绍

接着上个博客,用浏览器打开solr之后的界面: Dashboard:仪表盘,显示了该solr实例开始运行的时间.版本.系统资源,jvm等信息 Logging:solr的运行日志,如果出现问题会告诉你什么问题. Core Admin:solr core 的管理界面.solr core是solr 的一个独立运行实例单位,他可以对外提供索引和搜索服务,一个solr工程可以运行多个solrcore,一个core对应一个索引目录. 可以手动添加solr core: 步骤: 1.复制collection1改

Haystack全文检索框架中使用jieba分词包

1.安装jieba pip install jieba 2.引入jieba cd 到haystack安装目录backends下, 新建文件ChineseAnalyzer.py,键入内容 import jieba from whoosh.analysis import Tokenizer, Token class ChineseTokenizer(Tokenizer): def __call__(self, value, positions=False, chars=False, keeporig

lucene&amp;solr全文检索_3查询索引

创建完索引之后,我们需要查询. 百度的查询接口及结果如图所示: 具体步骤已经在上个博客中写到,直接上代码:(由于是一个完整的程序,我把创建索引的代码也post上) package come.me.lucene; import static org.junit.jupiter.api.Assertions.*; import java.io.File; import org.apache.commons.io.FileUtils; import org.apache.lucene.analysis