lucene

lucene&solr全文检索_4改进

╄→гoц情女王★ 提交于 2020-02-01 22:27:32
在之前的程序中我们发现分词不太准确,因此我们可以使用支持中文分词。   分析器的执行过程:      从一个reader字符流开始,创建一个基于reader的tokenizer分词器,经过三个tokenfilter(第一个大写变小写,第二个用回车替换空格,去掉不需要的a,the,and,逗号等)生成tokens。要看分析器的分析效果只需要看tokenstream中的内容就可以了,每个分析器都有一个方法tokenstream,返回一个tokenstream对象。   lucene自带中文分析器: standardAnalyzer:单字分词即一个一个分 CJKAnalyzer:二分法,即两个一分,、 SmartChineseAnalyzer:对中文支持好,但扩展性差,对词库的操作不是很好处理。 由此可见上面三个分析器效果并不是很理想,因此要使用第三方分析器: paoding: 庖丁解牛最新版在 https://code.google.com/p/paoding/ 中最多支持 Lucene 3.0,且最新提交的代码在 2008-06-03,在svn中最新也是2010年提交,已经过时。 mmseg4j:最新版已从 https://code.google.com/p/mmseg4j/ 移至 https://github.com/chenlb/mmseg4j-solr ,支持 Lucene 4

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

ぃ、小莉子 提交于 2020-02-01 20:46:05
创建完索引之后,我们需要查询。 百度的查询接口及结果如图所示: 具体步骤已经在上个博客中写到,直接上代码:(由于是一个完整的程序,我把创建索引的代码也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.Analyzer; import org.apache.lucene.analysis.standard.StandardAnalyzer; import org.apache.lucene.document.Document; import org.apache.lucene.document.Field; import org.apache.lucene.document.Field.Store; import org.apache.lucene.document.LongField; import org.apache.lucene.document.StoredField; import org.apache.lucene.document.TextField; import

Lucene

和自甴很熟 提交于 2020-01-31 18:01:59
【承接上文】 1、问:Lucene优点? 答:a、Lucene定义了一套以9字节为基础的索引文件格式,使得兼容系统或者不同平台的应用能够共享建立的索引文件。 b、在传统倒排索引的基础上,实现了分块索引。 【ps:这里说明一下什么是倒排索引】 实际应用中需要根据属性值来查找记录,这种索引表中的每一项都包括一个属性值和对应的记录地址。由于是由属性值来确定记录位置,因而被称为倒排索引。 c、用户无需编写代码即可使用系统强大的查询能力,默认实现布尔、模糊、分组查询等。 d、虽然Lucene使用Java语言,但是开源之后就有许多大牛使得其能运行在各种各样的平台上。 2、问:能不能别整那些虚头巴脑的,整点代码不香吗? 答:香,好滴。以idea为例。 【未完待续!】 来源: 51CTO 作者: Red_Ant_hoyl 链接: https://blog.51cto.com/13479739/2468698

Lucene、Solr、ElasticSearch、hibernate-search四部曲

纵然是瞬间 提交于 2020-01-31 14:49:14
【前言】 从前年的时候,我都在心里有个想法。我想自己做一套搜索功能。在心里我是这么想的: 1、有个资源信息库,供我查询,这个资源库可能包含各种途径生成的统一格式的数据库。 2、查询时,我先整段匹配资源库找到资源。 3、接下来就是分词了,这里我联想到了一些输入法的细胞词库。也就是说能不能按照细胞词库先匹配我们的搜索内容,然后将分词后的搜索条件进行匹配查询。 4、按照匹配度的高低进行排序。 直到昨天,在工作中刚刚得知Lucene、Solr。 【简介】 Lucene是apache软件基金会(这个咱们前面介绍过)的一个子项目,是一个开源的全文检索引擎工具包,但不是一个完全的全文检索引擎,是一个全文检索引擎的架构,提供完整的查询引擎和索引引擎,部分文本分析引擎。 Solr是一个独立的企业及搜索应用服务器,用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引。也可以通过http get提出查找请求得到XML格式的返回结果。 【Lucene 和solr】 本质区别在于: 1、Lucene是搜索库,不是独立的应用程序,而Solr是。 2、Lucene专注于搜索底层的建设,而Solr专注企业应用。 3、Lucene不负责支撑搜索服务所必须的管理,而Solr负责。 也就是说:Solr是Lucene面向企业搜索的应用扩展。也就是说,像学好Solr先学Lucene。 【问

lucent,solr,ES比较

随声附和 提交于 2020-01-31 07:57:02
| 0 什么是全文搜索 什么是全文搜索引擎? 百度百科中的定义 : 全文搜索引擎是目前广泛应用的主流搜索引擎。它的工作原理是计算机索引程序通过扫描文章中的每一个词,对每一个词建立一个索引,指明该词在文章中出现的次数和位置,当用户查询时,检索程序就根据事先建立的索引进行查找,并将查找的结果反馈给用户的检索方式。这个过程类似于通过字典中的检索字表查字的过程。 从定义中我们已经可以大致了解全文检索的思路了,为了更详细的说明,我们先从生活中的数据说起。 我们生活中的数据总体分为两种: 结构化数据 和 非结构化数据 。 结构化数据 : 指具有固定格式或有限长度的数据,如数据库,元数据等。 非结构化数据 : 非结构化数据又可称为全文数据,指不定长或无固定格式的数据,如邮件,word文档等。 当然有的地方还会有第三种: 半结构化数据 ,如XML,HTML等,当根据需要可按结构化数据来处理,也可抽取出纯文本按非结构化数据来处理。 根据两种数据分类,搜索也相应的分为两种:结构化数据搜索和非结构化数据搜索。 对于结构化数据,我们一般都是可以通过关系型数据库(mysql,oracle等)的 table 的方式存储和搜索,也可以建立索引。 对于非结构化数据,也即对全文数据的搜索主要有两种方法: 顺序扫描法 , 全文检索 。 顺序扫描 :通过文字名称也可了解到它的大概搜索方式

搜索引擎选择: Elasticsearch与Solr

心不动则不痛 提交于 2020-01-31 02:04:24
Elasticsearch简介 * Elasticsearch是一个实时的分布式搜索和分析引擎。它可以帮助你用前所未有的速度去处理大规模数据。 它可以用于全文搜索,结构化搜索以及分析,当然你也可以将这三者进行组合。 Elasticsearch是一个建立在全文搜索引擎 Apache Lucene™ 基础上的搜索引擎,可以说Lucene是当今最先进,最高效的全功能开源搜索引擎框架。 但是Lucene只是一个框架,要充分利用它的功能,需要使用JAVA,并且在程序中集成Lucene。需要很多的学习了解,才能明白它是如何运行的,Lucene确实非常复杂。 Elasticsearch使用Lucene作为内部引擎,但是在使用它做全文搜索时,只需要使用统一开发好的API即可,而不需要了解其背后复杂的Lucene的运行原理。 当然Elasticsearch并不仅仅是Lucene这么简单,它不但包括了全文搜索功能,还可以进行以下工作: 分布式实时文件存储,并将每一个字段都编入索引,使其可以被搜索。 实时分析的分布式搜索引擎。 可以扩展到上百台服务器,处理PB级别的结构化或非结构化数据。 这么多的功能被集成到一台服务器上,你可以轻松地通过客户端或者任何你喜欢的程序语言与ES的RESTful API进行交流。 Elasticsearch的上手是非常简单的。它附带了很多非常合理的默认值

solr和ElasticSearch(ES)的区别?

风流意气都作罢 提交于 2020-01-31 00:13:56
Solr2004年诞生 ElasticSearch 2010年诞生 ES更新 ElasticSearch简介:   ElasticSearch是一个实时的分布式的搜索引擎和分析引擎.它可以帮助你用前所未有的速度去处理大规模数据.   它可以用于全文检索,结构化以及分析.当然你也可以将这三者进行组合.   ElasticSearch是一个建立在全文搜索引擎Apache Lucene基础上的搜索引擎,可以说Lucene是当今最先进,最高效的全共鞥开源搜索引擎框架.   但是Lucene只是一个框架,要充分利用它的功能,需要使用JAVA,并且在程序中集成Lucene.需要很多的学习了解,才能明白它是如何运行的,Lucene确实非常复杂.   ElasticSearch使用Lucene作为内部引擎,但是在使用它做全文检索时,只需要使用统一开发好的API即可,而不需要了解其背后复杂的Lucene的运行原理.   当然Elasticsearch并不仅仅是Lucene这么简单,它不但包括了全文搜索功能,还可以进行一下工作:     分布式实时文件存储,并将每一个字段都编入索引,使其可以被搜索.     实时分析的分布式搜索引擎.     可以拓展到上百台服务器上,处理PB级别的结构化和非结构化数据 这么多的功能都被继承到一台服务器上

Elasticsearch基本概念

做~自己de王妃 提交于 2020-01-31 00:10:44
作者其他ELK快速入门系列文章 logstash快速入门实战指南 Kibana从入门到精通 一、前言 驱动未来商业发展的最重要“能源”不是石油,而是数据。我们还来不及了解它,这个世界已经被它淹没。多年来,我们系统间流转和产生的大量数据已让我们不知所措。现有的技术都集中在如何解决数据仓库存储以及如何结构化这些数据。这些看上去都挺美好,直到你实际需要基于这些数据实时做决策分析的时候才发现根本不是那么一回事。Elasticsearch在这个时代能给我们带什么呢?我们带着这些疑问去探索Elasticsearch能做什么。。。 二、Elasticsearch能做什么 Elasticsearch 是一个实时的分布式搜索分析引擎, 它能让你以一个前所未有过的速度和规模,去探索你的数据。 它被用作全文检索、结构化搜索、分析以及这三个功能的组合: Wikipedia 使用 Elasticsearch 提供带有高亮片段的全文搜索,还有 search-as-you-type 和 did-you-mean 的建议。 卫报 使用 Elasticsearch 将网络社交数据结合到访客日志中,实时的给它的编辑们提供公众对于新文章的反馈。 Stack Overflow 将地理位置查询融入全文检索中去,并且使用 more-like-this 接口去查找相关的问题与答案。 GitHub 使用

Elasticsearch&Echart 介绍

断了今生、忘了曾经 提交于 2020-01-31 00:00:27
百度 echart 图表展现插件介绍 ECharts,一个纯 Javascript 的图表库,可以流畅的运行在 PC 和移动设备上,兼容当前绝大部分浏览器(IE8/9/10/11,Chrome,Firefox,Safari等),底层依赖轻量级的 Canvas 类库 ZRender ,提供直观,生动,可交互,可高度个性化定制的数据可视化图表。 ECharts 3 中更是加入了更多丰富的交互功能以及更多的可视化效果,并且对移动端做了深度的优化。 丰富的图表类型 ECharts 提供了常规的 折线图 , 柱状图 , 散点图 , 饼图 , K线图 ,用于统计的 盒形图 ,用于地理数据可视化的 地图 , 热力图 , 线图 ,用于关系数据可视化的 关系图 , treemap ,多维数据可视化的 平行坐标 ,还有用于 BI 的 漏斗图 , 仪表盘 ,并且支持图与图之间的混搭。 详细说明查看官网介绍: http://echarts.baidu.com/tutorial.html Elasticsearch 介绍 Elasticsearch是一个实时分布式搜索和分析引擎。它让你以前所未有的速度处理大数据成为可能。它用于全文搜索、结构化搜索、分析以及将这三者混合使用: 维基百科使用Elasticsearch提供全文搜索并高亮关键字,以及输入实时搜索(search-as-you-type)和搜索纠错

关系型数据库MySql-模糊搜索优化(like %abc%):全文搜索引擎技术选型

℡╲_俬逩灬. 提交于 2020-01-30 23:50:23
1.阿里云OpenSearch 阿里云开放搜索OpenSearch是一款阿里巴巴自主研发的大规模分布式搜索引擎平台,该平台承载了淘宝、天猫、1688、神马搜索、口碑、菜鸟等搜索业务,通过OpenSearch云服务的方式,将阿里巴巴成熟的搜索技术共享给广大开发者。 https://help.aliyun.com/document_detail/29119.html 2.Lucene Lucene 是一个 JAVA 搜索类库,它本身并不是一个完整的解决方案,需要额外的开发工作。 优点:成熟的解决方案,有很多的成功案例。apache 顶级项目,正在持续快速的进步。庞大而活跃的开发社区,大量的开发人员。它只是一个类库,有足够的定制和优化空间:经过简单定制,就可以满足绝大部分常见的需求;经过优化,可以支持 10亿+ 量级的搜索。 缺点:需要额外的开发工作。所有的扩展,分布式,可靠性等都需要自己实现;非实时,从建索引到可以搜索中间有一个时间延迟,而当前的“近实时”(Lucene Near Real Time search)搜索方案的可扩展性有待进一步完善 3.IndexTank 基于 Lucene 的一系列解决方案,包括 准实时搜索 zoie ,facet 搜索实现 bobo ,机器学习算法 decomposer ,摘要存储库 krati ,数据库模式包装 sensei 等等 优点