展开

关键词

Solr实现全文搜索

1.1 Solr是什么? Solr 是Apache下的一个顶级开源项目,采用Java开发,它是基于Lucene的全文搜索服务器。 Solr提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展,并对索引、搜索性能进行了优化。 Solr是一个全文检索服务器,只需要进行配置就可以实现全文检索服务。 1.2 Solr的安装及配置 Solr的版本:4.10.3 1.2.1 安装步骤 需要把solr服务器安装到linux环境: 第一步:安装linux、jdk、tomcat。 并改名为solr.war [root@bogon dist]# cp solr-4.10.3.war /usr/local/solr/tomcat/webapps/solr.war 第四步:解压war包 跳转到文档末尾:G <fieldType name="text_ik" >   <analyzer /> </fieldType> 1.2.2.2 业务字段配置 业务字段判断标准: 1、在搜索时是否需要在此字段上进行搜索

6810

全文检索引擎Solr系列—–全文检索基本原理

对于全文检索也是类似的原理,它可以归结为两个过程:1.索引创建(Indexing)2. 搜索索引(Search)。那么索引到底是如何创建的呢?索引里面存放的又是什么东西呢? 如果是想搜既包含”lucene”又包含”solr”的文档,那么与之对应的两个倒排表去交集即可获得:3、10、35、92。 如何进行合理有效的搜索搜索出用户最想要得结果呢? 一个文档由多个(或者一个)词(Term)组成,比如:”solr”, “toturial”,不同的词可能重要性不一样,比如solr就比toturial重要,如果一个文档出现了10次toturial,但只出现了一次 solr,而另一文档solr出现了4次,toturial出现一次,那么后者很有可能就是我们想要的搜的结果。

10940
  • 广告
    关闭

    【玩转 Cloud Studio】有奖调研征文,千元豪礼等你拿!

    想听听你玩转的独门秘籍,更有机械键盘、鹅厂公仔、CODING 定制公仔等你来拿!

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Solr_全文检索引擎系统

    Solr介绍: Solr 是Apache下的一个顶级开源项目,采用Java开发,它是基于Lucene的全文搜索服务。Solr可以独立运行在Jetty、Tomcat等这些Servlet容器中。 Solr的作用: solr是一个现成的全文检索引擎系统, 放入tomcat下可以独立运行, 对外通过http协议提供全文检索服务(就是对索引和文档的增删改查服务), 在代码中可以通过solrJ(solr Lucene和solr的区别: lucene是一个全文检索引擎工具包, 就是一堆jar包, 它放入tomcat下不能独立运行, 但是我们可以使用lucene来构建全文检索引擎系统; solr底层是用lucene 来开发的一个全文检索引擎系统, 放入tomcat下就可以独立运行, 对外通过http的形式,提供全文检索服务(索引和文档的增删改查服务)。 通过SolrJ操作并访问solr服务中的数据: 什么是solrj? solrj是访问solr服务的Java客户端,提供索引和搜索的请求方法。 ? 创建工程,并引入solrj所需的jar包: ?

    40780

    全文检索Solr集成HanLP中文分词

    \conf拷贝过来,接着修改schema.xml中的默认域type,搜索 1.    通过solr自带的停用词过滤器,使用"stopwords.txt"(默认空白)过滤。 3. 在搜索的时候,还支持solr自带的同义词词典。--> 4. 切记,否则这些字段仍旧是solr默认分词器,会造成这些字段“搜索不到”。 另外,切记不要在query中开启indexMode,否则会影响PhaseQuery。 . [1:3 1] 医药/n 5. [3:5 1] 大学/n 6. [5:9 1] 附属医院/nt 7. [5:7 1] 附属/vn 8. [7:9 1] 医院/n 开启indexMode后,无论用户搜索 “中医”“中医药”还是“医药”,都会搜索到“中医药大学附属医院”: 图8.jpg 高级配置 目前本插件支持如下基于schema.xml的配置: 图9.jpg 对于更高级的配置,HanLP分词器主要通过

    65830

    solr or es 结合弥补mongodb的全文检索功能

    mongodb唯一不足的就是全文检索的能力,不过大部分公司都是用的搜索框架来单独提供搜索服务的。 下面介绍下mongodb怎么结合solr或者es来做搜索。 建索引方案一 solr或者es部分只存储需要搜索的索引和数据的主键ID。比如根据标题搜索,那么只建立标题索引。存储部分只存主键ID。 这样只要标题做了修改,需要更新标题索引即可。 搜索方案一 在搜索接口中调用solr进行搜索,如果我们只存了主键ID,那么拿到搜索的结果的数据ID对mongodb进行in查询,组装数据返回给调用方。 可以执行mongodb的所有操作,当然需要配置哪些字段需要做全文检索操作,需要分词等等。 一旦用到这个字段进行搜索的时候,框架会自动去solr或者es进行搜索,然后封装数据返回给调用方,对调用方来说是透明的,它不知道背后还去查了solr

    1.1K140

    全文检索引擎Solr系列——入门篇

    Solr采用Lucene搜索库为核心,提供全文索引和搜索开源企业平台,提供REST的HTTP/XML和JSON的API,如果你是Solr新手,那么就和我一起来入门吧! ,现在就可以通过管理界面搜索关键字”solr”,具体步骤是: 点击页面下的Execute Query按钮后右侧就会显示查询结果,这个结果就是刚才导入进去的solr.xml的json格式的展示结果。 solr支持丰富的查询语法,比如:现在想搜索字段name里面的关键字”Search”就可以用语法name:search,当然如果你搜索name:xxx就没有返回结果了,因为文档中没有这样的内容。 高亮 网页搜索中,为了突出搜索结果,可能会对匹配的关键字高亮出来,Solr提供了很好的支持,只要指定参数: hl=true #开启高亮功能 hl.fl=name #指定需要高亮的字段 1 http: 安装到部署,文档更新,对solr有了初步感性的认识,下一篇将介绍全文检索的基本原理。

    7010

    全文搜索,ElasticSearch和Solr哪个更好用?

    这个过程类似于通过字典中的检索字表查字的过程。 从定义中我们已经可以大致了解全文检索的思路了,为了更详细的说明,我们先从生活中的数据说起。 对于非结构化数据,也即对全文数据的搜索主要有两种方法: 顺序扫描 全文检索 顺序扫描:通过文字名称也可了解到它的大概搜索方式,即按照顺序扫描的方式查询特定的关键字。 将非结构化数据中的一部分信息提取出来,重新组织,使其变得有一定结构,然后对此有一定结构的数据进行搜索,从而达到搜索相对较快的目的。 这种方式就构成了全文检索的基本思路。 对于这些非结构化的数据文本,关系型数据库搜索不是能很好的支持。 索引的维护 一般传统数据库,全文检索都实现的很鸡肋,因为一般也没人用数据库存文本字段。 它是文档检索系统中最常用的数据结构。 Lucene Lucene 是一个 Java 全文搜索引擎,完全用 Java 编写。

    13220

    全文搜索引擎 Elasticsearch 还是 Solr

    最近项目组安排了一个任务,项目中用到了基于 Solr全文搜索,但是该 Solr 搜索云项目不稳定,经常查询不出来数据,需要手动全量同步。 这个过程类似于通过字典中的检索字表查字的过程。 从定义中我们已经可以大致了解全文检索的思路了,为了更详细的说明,我们先从生活中的数据说起。 对于非结构化数据,也即对全文数据的搜索主要有两种方法: 顺序扫描 全文检索 顺序扫描:通过文字名称也可了解到它的大概搜索方式,即按照顺序扫描的方式查询特定的关键字。 将非结构化数据中的一部分信息提取出来,重新组织,使其变得有一定结构,然后对此有一定结构的数据进行搜索,从而达到搜索相对较快的目的。 这种方式就构成了全文检索的基本思路。 它是文档检索系统中最常用的数据结构。 Lucene Lucene 是一个 Java 全文搜索引擎,完全用 Java 编写。

    50420

    全文搜索引擎选 ElasticSearch 还是 Solr

    来源:http://t.cn/Ebgm7sn 什么是全文搜索 为什么要用全文搜索搜索引擎 Lucene,Solr,ElasticSearch ? 这个过程类似于通过字典中的检索字表查字的过程。 从定义中我们已经可以大致了解全文检索的思路了,为了更详细的说明,我们先从生活中的数据说起。 对于非结构化数据,也即对全文数据的搜索主要有两种方法: 顺序扫描 全文检索 顺序扫描:通过文字名称也可了解到它的大概搜索方式,即按照顺序扫描的方式查询特定的关键字。 将非结构化数据中的一部分信息提取出来,重新组织,使其变得有一定结构,然后对此有一定结构的数据进行搜索,从而达到搜索相对较快的目的。 这种方式就构成了全文检索的基本思路。 它是文档检索系统中最常用的数据结构。 Lucene Lucene 是一个 Java 全文搜索引擎,完全用 Java 编写。

    29010

    全文搜索引擎选 ElasticSearch 还是 Solr

    这个过程类似于通过字典中的检索字表查字的过程。 从定义中我们已经可以大致了解全文检索的思路了,为了更详细的说明,我们先从生活中的数据说起。 对于非结构化数据,也即对全文数据的搜索主要有两种方法: 1、顺序扫描 2、全文检索 顺序扫描:通过文字名称也可了解到它的大概搜索方式,即按照顺序扫描的方式查询特定的关键字。 将非结构化数据中的一部分信息提取出来,重新组织,使其变得有一定结构,然后对此有一定结构的数据进行搜索,从而达到搜索相对较快的目的。 这种方式就构成了全文检索的基本思路。 对于这些非结构化的数据文本,关系型数据库搜索不是能很好的支持。 索引的维护 一般传统数据库,全文检索都实现的很鸡肋,因为一般也没人用数据库存文本字段。 它是文档检索系统中最常用的数据结构。 Lucene Lucene 是一个 Java 全文搜索引擎,完全用 Java 编写。

    32120

    全文搜索引擎选ElasticSearch还是Solr

    最近项目组安排了一个任务,项目中用到了基于 Solr全文搜索,但是该 Solr 搜索云项目不稳定,经常查询不出来数据,需要手动全量同步。 这个过程类似于通过字典中的检索字表查字的过程。 从定义中我们已经可以大致了解全文检索的思路了,为了更详细的说明,我们先从生活中的数据说起。 对于非结构化数据,也即对全文数据的搜索主要有两种方法: 顺序扫描 全文检索 顺序扫描:通过文字名称也可了解到它的大概搜索方式,即按照顺序扫描的方式查询特定的关键字。 将非结构化数据中的一部分信息提取出来,重新组织,使其变得有一定结构,然后对此有一定结构的数据进行搜索,从而达到搜索相对较快的目的。 这种方式就构成了全文检索的基本思路。 它是文档检索系统中最常用的数据结构。 Lucene Lucene 是一个 Java 全文搜索引擎,完全用 Java 编写。

    28110

    全文搜索引擎选ElasticSearch还是Solr

    这个过程类似于通过字典中的检索字表查字的过程。 从定义中我们已经可以大致了解全文检索的思路了,为了更详细的说明,我们先从生活中的数据说起。 对于非结构化数据,也即对全文数据的搜索主要有两种方法: 顺序扫描 全文检索 顺序扫描:通过文字名称也可了解到它的大概搜索方式,即按照顺序扫描的方式查询特定的关键字。 将非结构化数据中的一部分信息提取出来,重新组织,使其变得有一定结构,然后对此有一定结构的数据进行搜索,从而达到搜索相对较快的目的。 这种方式就构成了全文检索的基本思路。 对于这些非结构化的数据文本,关系型数据库搜索不是能很好的支持。 索引的维护 一般传统数据库,全文检索都实现的很鸡肋,因为一般也没人用数据库存文本字段。 它是文档检索系统中最常用的数据结构。 Lucene Lucene 是一个 Java 全文搜索引擎,完全用 Java 编写。

    56210

    全文搜索引擎选ElasticSearch还是Solr

    出处: https://www.cnblogs.com/jajian/p/9801154.html 最近项目组安排了一个任务,项目中用到了全文搜索,基于全文搜索 Solr,但是该 Solr 搜索云项目不稳定 这个过程类似于通过字典中的检索字表查字的过程。 从定义中我们已经可以大致了解全文检索的思路了,为了更详细的说明,我们先从生活中的数据说起。 对于非结构化数据,也即对全文数据的搜索主要有两种方法:顺序扫描法,全文检索。 顺序扫描:通过文字名称也可了解到它的大概搜索方式,即按照顺序扫描的方式查询特定的关键字。 将非结构化数据中的一部分信息提取出来,重新组织,使其变得有一定结构,然后对此有一定结构的数据进行搜索,从而达到搜索相对较快的目的。这种方式就构成了全文检索的基本思路。 它是文档检索系统中最常用的数据结构。 3.1 Lucene Lucene是一个Java全文搜索引擎,完全用Java编写。

    50200

    全文搜索引擎Solr原理和实战教程

    Solr 提供了层面搜索(就是统计)、命中醒目显示并且支持多种输出格式(包括XML/XSLT 和JSON等格式)。Solr是一个高性能,采用Java开发, 基于Lucene的全文搜索服务器。 高效、灵活的缓存功能,垂直搜索功能,高亮显示搜索结果,通过索引复制来提高可用性,提供一套强大Data Schema来定义字段,类型和设置文本分析,提供基于Web的管理界面等. · 高级的全文搜索功能 Lucene是一个基于Java的全文信息检索工具包,它不是一个完整的搜索应用程序,而是为你的应用程序提供索引和搜索功能。 也是目前最为流行的基于Java开源全文检索工具包。目前已经有很多应用程序的搜索功能是基于 Lucene ,比如Eclipse 帮助系统的搜索功能。 (new BinaryRequestWriter()); Lucence工作原理 lucence 是一个高性能的java全文检索工具包,他使用倒排序文件索引结构,改结构和相应的生成算法如下: 一、设有两篇文章

    1.5K10

    Lucene 全文检索

    基于 lucene 8 1 Lucene简介 Lucene是apache下的一个开源的全文检索引擎工具包。 1.1 全文检索(Full-text Search) 全文检索就是先分词创建索引,再执行搜索的过程。分词就是将一段文字分成一个个单词。 全文检索就将一段文字分成一个个单词去查询数据 1.2 Lucene实现全文检索的流程 ? 全文检索的流程分为两大部分:索引流程、搜索流程。 搜索流程:创建查询--->执行搜索--->渲染搜索结果。 2 入门示例 2.1 需求 使用Lucene实现电商项目中图书类商品的索引和搜索功能。 2.3.2 第二部分:创建索引 步骤说明: 采集数据 将数据转换成Lucene文档 将文档写入索引库,创建索引 2.3.2.1 第一步:采集数据 Lucene全文检索,不是直接查询数据库,所以需要先将数据采集出来

    50360

    Lucene全文检索

    全文检索是程序开发中非常重要的一个应用,今天带大家来一起学习Java基于Lucene的全文检索机制。 全文检索的概念 1) 从大量的信息中快速、准确地查找出要的信息。 全文检索的应用场景 1.站内搜索 通常用于在大量数据出现的系统中,找出你想要的资料。 bbs的关键字搜索:如百度贴吧。 商品网站的搜索:如淘宝、京东、中关村在线等。 文件管理系统:对文件的搜索功能。 e) 可以应用于购物搜索、房产搜索、人才搜索全文检索与数据库搜索的区别 1. 数据库的搜索 类似:select * from 表名 where 字段名 like ‘%关键字%’。 全文检索 1) 搜索结果按相关度排序:意味着只有前几个页面对于用户来说是比较有用的,其他的结果与用户想要的答案很可能相差甚远。数据库搜索是做不到相关度排序的。 2) 因为全文检索是采用引索的方式,所以在速度上肯定比数据库方式like要快。 3) 所以数据库不能代替全文检索全文检索只是一个概念,而具体实现有很多框架,Lucene是其中的一种。

    63820

    Lucene 全文检索

    Lucene 全文检索 Field域 Field是文档中的域,包括Field名和Field值两部分,一个文档可以包括多个Field,Document只是Field的一个承载体,Field值即为要索引的内容 ,也是要搜索的内容。 ,比如商品的名称,商品的介绍,文章的内容,这些内容需要输入关键词搜索的,我们必须进行索引,如果不索引将会不能爱按照这些内容搜索。 图书价格 是否分词:要分词,lucene对数字型的值只要有搜索需求的都要分词和索 引,因为lucene对数字型的内容要特殊分词处理,本例子可能要根据价格范 围搜索,需要分词和索引。 在solr中就是根据ID来进行删除和修改操作的。

    48640

    关于全文检索

    我们都知道关于全文检索大多公司的选型都是ElasticSearch,为什么是它?可能有的人会回复Es利用倒排索引适用于全文检索,倒排索引怎么存的?倒排索引为什么这么优秀? 我们先从MySql的索引存储结构来讲,大家都知道MySql的索引存储结构是B+Tree,如果执行下面全文检索的SQL会走索引吗? 为什么全文索引选择ElasticSearch? Term Dictionary的基础上添加了Term Index来加速检索,term index 以树的形式缓存在内存中。从成本和效率来讲ES是一个优秀的解决方案。

    18330

    全文检索原理

    全文检索的基本原理 什么是全文检索? 我们生活中的数据总体分为两种:结构化数据和非结构化数据。 结构化数据:指具有固定格式或有限长度的数据,如数据库,元数据等。 全文索引 全文检索的基本思路:将非结构化数据中的一部分信息提取出来,重新组织,使其变得有一定结构,然后对此有一定结构的数据进行搜索,从而达到搜索相对较快的目的。 这种先建立索引,再对索引进行搜索的过程就叫全文检索(Full-text Search)。 搜索时按结构化的拼音搜到读音,然后按其指向的页数,便可找到我们的非结构化数据——也即对字的解释。 全文检索的一般过程 ? 图来自《Lucene in action》 全文检索大体分两个过程,索引创建(Indexing) 和 搜索索引(Search)。

    83240

    Mysql的全文检索

    mysql分词索引 前言 使用范围及限制 全文检索的全局配置 数据准备 全文检索元数据 INNODB_FT_CONFIG INNODB_FT_BEING_DELETED INNODB_FT_DELETED INNODB_FT_DEFAULT_STOPWORD INNODB_FT_INDEX_CACHE INNODB_FT_INDEX_TABLE 全文检索查询 查询模式 简单查询 相关度分数查询 布尔全文检索 全文检索扩展查询(同义词效果) 自定义停用词 ngram全文检索器(中文停用词) 前言 可以直接跟着官方敲一下: mysql官方文档-fulltext 现在的产品一言不合就想分词或者全模糊查询,之前的解决方案有 基于字符的 ngram 全文检索解析器支持中日韩三种语言 日语还有一个MeCab解析器插件 虽然我们可以每一行都设置一个字符集,但是全文检索相关的列必须同字符 %这个用于模糊查询,全文检索不支持这个通配符 ,那么就得两个一起用; 想用一个字段需要单独为一个字段设置一个全文检索的索引 全文检索有相关度排名,当满足下面条件则按相关度进行排序 没有明确的order by 必须使用全文检索执行搜索 有多表联查时,

    33140

    扫码关注腾讯云开发者

    领取腾讯云代金券