全文搜索

ElasticSearch学习日志——了解ElasticSearch

我的梦境 提交于 2020-03-04 15:52:35
文章目录 ElasticSearch是什么? 了解Luence 搜索 数据的分类 顺序扫描 全文搜索 Luence是怎么实现全文搜索 应用场景 ElasticSearch核⼼概念 ElasticSearch高扩展 ElasticSearch高实时 ElasticSearch是什么? 是一个基于 Luence 的 全文搜索引擎 ,基于RESTful web接口 ElasticSearch 是一个 分布式 、 高扩展 、 高实时 的 搜索 与 数据分析 引擎 了解Luence Lucene是一套用于 全文检索 和搜寻的开源程序库。其主要 目的就是解决全文搜索 。 那么全文搜索能有什么问题? 那我们先看看搜索 搜索 搜索:把数据找出来。对数据进行搜索,那就不得不提数据分类。 数据的分类 结构化数据 :具有 固定格式 或者 固定长度 的数据。对于结构化数据我们一般都是存储在关系型数据库table中;那么对于结构化数据搜索,一般是建立索引,通过B-tree等数据结构快速搜索。 非结构化数据 : 指没有 固定格式 或 不定长 的数据。如文章。那么对于非结构化数据我们怎么进行搜索呢?主要有两种方法:顺序扫描法,全文搜索法 顺序扫描 顺序扫描 :从头到尾扫描 一边,标记要搜索的关键词;这样的方法无疑效率是很低的。 全文搜索 全文搜索 :扫描非结构化数据,对每一个词建立一个索引

mysql_全文搜索+match against_已迁移

痞子三分冷 提交于 2020-03-02 06:26:15
一个SELECT查询中的LIKE语句来执行这种查询,尽管这种方法可行, 但对于全文查找而言,这是一种效率极端低下的方法,尤其在处理大量数据的时候。 ------------------- 上面这句话 我是在网上看到的, 说得挺有道理的, mysql 本身提供了一种叫做全文搜索的技术吧, 不过这好像从后来的版本才有的, 比较旧的版本不支持,不过那是很早期的版本了, 现在大家使用的版本 应该都支持的。我现在使用 mysql6.0.4 来演示 全文搜索 比起 索引 我觉得更加全面, 索引只对某一个字段,然后在查询时候使用 like 配合。 全文搜索它可以设置多个字段进行搜索,可以说是比起 select .... like 高级吧。 好了, 既然 全文搜索 有这样的优点,下面我们来看看 是否真的如此。 下面提供的测试例子,是 mysql 手册上面的一个例子 CREATE TABLE articles ( id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY, title VARCHAR(200), body TEXT, FULLTEXT (title,body) ); 上面这是创建表的 mysql 语句, 其中最后一句 FULLTEXT (title,body) 就是为 title 和 body 创建一个 全文搜索,也就是 以后 方便搜索

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)和搜索纠错

Solr和ES对比

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

Sphinx + Coreseek 实现中文分词搜索

自古美人都是妖i 提交于 2020-01-25 16:51:25
Sphinx + Coreseek 实现中文分词搜索 Sphinx Coreseek 实现中文分词搜索 全文检索 1 全文检索 vs 数据库 2 中文检索 vs 汉化检索 3 自建全文搜索与使用Google等第三方站点提供的站内全文搜索的差别 Sphinx Coreseek介绍 Coreseek安装使用 1. 全文检索 1.1 全文检索 vs. 数据库 全文检索是数据库的有力补充,全文检索并不能替代数据库在应用系统中的作用。当应用系统的数据以大量的文本信息为主时,採用全文检索技术能够极大的提升应用系统的价值。 数据库搜索。假设搜索范围包含所有正文数据。往往性能非常低。用户响应时间长(分钟级。常常超时);而全文检索能够在0.x秒(毫秒级)的时间内将结果反馈给用户; 数据库搜索。一个用户在搜索。往往影响其它用户的相应用系统进行操作。全文检索能够同一时候支持多个用户并发搜索,其它相应用系统进行操作的用户不受影响。 数据库搜索非常难实现多个关键字的复合搜索。而全文检索能够实现多个关键词的复合搜索。包含 “和(AND)”、“或(OR)”、“否(NOT)” 等; 数据库搜索难于对结果进行相关度排序,当检索结果多时。用户往往难于找到最恰当的文档。而全文检索通过统计的研究成果。能够将文档进行相关度排序后。再返回给用户,提高用户的效率; 全文检索还能够对检索结果的数据进行聚类分析(Group,

ElasticSearch全文搜索

你离开我真会死。 提交于 2020-01-17 00:42:57
一.认识ElasticSearch 1.1什么是ElasticSearch ES的索引库管理支持依然是基于Apache Lucene(TM)的开源搜索引擎, ES也使用Java开发并使用Lucene作为其核心来实现所有索引和搜索的功能,但是它的目的是通过简单的 RESTful API来隐藏Lucene的复杂性,从而让全文搜索变得简单 1.2类似框架 ① Solr Apache Lucene项目的开源企业搜索平台。其主要功能包括全文检索、命中标示、分面搜索、动态聚类、数据库集成,以及富文本(如Word、PDF)的处理。Solr是高度可扩展的,并提供了分布式搜索和索引复制。Solr是最流行的企业级搜索引擎,Solr4 还增加了NoSQL支持。 ② Katta ③ HadoopContrib 1.3solr与ES的比较 Solr 利用 (zookeeper注册中心) 进行分布式管理,支持更多格式的数据(HTML/PDF/CSV),官方提供的功能更多在传统的搜索应用中表现好于 ES,但实时搜索效率低 ES自身带有分布式协调管理功能,但仅支持json文件格式,本身更注重于核心功能,高级功能多有第三方插件提供,在处理实时搜索应用时效率明显高于solr 二.ES的安装 1.需要jdk1.7以上 下载安装包 运行命令 bin/elasticsearch.bat 访问:http:/

CHM格式的可以全文搜索的Spring3.2官方参考文档

泄露秘密 提交于 2020-01-10 15:34:39
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> Spring的官方参考文档是html格式的,并且没有目录树,用它本身的跳转功能,跳来跳去经常把头给跳晕了! 最重要的一个缺点是没有全文搜索,于是一生气就做了一个CHM格式的有目录,带全文搜索的最新Spring3.2官方参考文档,好东西不敢独享,特分享给大家! 透露个小秘密:Spring3.2参考里有1400多个目录,我不可能一个一个输入,而是利用Jetty里的类似jQuery的select语法写程序生成的.再次证明"懒人是推动世界前进的动力". 文件说明: dist\Spring3.2 Reference.chm 生成的CHM文件 src\java\Spring3.XCatalog.html Spring参考目录里的index.html文件 src\java\SpringChmParse.java 生成目录的Java源代码 src\WinCHM\Spring3参考指南.wcp WinCHM格式的项目文件. 下载地址: https://github.com/wjw465150/SpringReferenceToChm/blob/master/dist/Spring3.2%20Reference.chm 来源: oschina 链接: https://my.oschina.net/u/53381/blog

Docker 简单部署 ElasticSearch

你。 提交于 2019-12-25 08:03:06
一、ElasticSearch是什么? Elasticsearch也使用Java开发并使用Lucene作为其核心来实现所有索引和搜索的功能,但是它的目的是通过简单的RESTful API来隐藏Lucene的复杂性,从而让全文搜索变得简单。 不过,Elasticsearch不仅仅是Lucene和全文搜索,我们还能这样去描述它: 分布式的实时文件存储,每个字段都被索引并可被搜索 分布式的实时分析搜索引擎 可以扩展到上百台服务器,处理PB级结构化或非结构化数据 拉取镜像 docker pull elasticsearch:6.7.2 docker pull mobz/elasticsearch-head:5 docker pull kibana:6.7.2 运行容器 ElasticSearch 的默认端口是9200,我们把宿主环境9200端口映射到 Docker 容器中的9200端口,就可以访问到 Docker 容器中的 ElasticSearch 服务了,同时我们把这个容器命名为 es 。 docker run -d --restart=always --name es -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:6.7.2 配置跨域 进入容器 由于要进行配置

全文搜索技术——倒排索引介绍

 ̄綄美尐妖づ 提交于 2019-12-18 15:56:21
文章目录 1.简介 2.详细介绍 1.简介 倒排索引源于实际应用中需要根据属性的值来查找记录。这种索引表中的每一项都包括一个属性值和具有该属性值的各记录的地址。由于不是由记录来确定属性值,而是由属性值来确定记录的位置,因而称为倒排索引(inverted index)。带有倒排索引的文件我们称为倒排索引文件,简称倒排文件(inverted file)。 倒排文件(倒排索引),索引对象是文档或者文档集合中的单词等,用来存储这些单词在一个文档或者一组文档中的存储位置,是对文档或者文档集合的一种最常用的索引机制。 搜索引擎的关键步骤就是建立倒排索引,倒排索引一般表示为一个关键词,然后是它的频度(出现的次数),位置(出现在哪一篇文章或网页中,及有关的日期,作者等信息),它相当于为互联网上几千亿页网页做了一个索引,好比一本书的目录、标签一般。读者想看哪一个主题相关的章节,直接根据目录即可找到相关的页面。不必再从书的第一页到最后一页,一页一页的查找. 2.详细介绍 0)设有两篇文章1和2   文章1的内容为:Tom lives in Guangzhou,I live in Guangzhou too.   文章2的内容为:He once lived in Shanghai. 1)由于lucene是基于关键词索引和查询的,首先我们要取得这两篇文章的关键词,通常我们需要如下处理措施   a

sphinx 全文搜索应用(一)

匿名 (未验证) 提交于 2019-12-02 23:41:02
为什么80%的码农都做不了架构师?>>> 一.安装配置 安装参见: http://www.ttlsa.com/html/1236.html 配置如下: # vi sphinx.conf # source块设置数据源 source src1 { type = mysql sql_host = localhost sql_user = root sql_pass = sql_db = sphinx sql_port = 3306 # optional, default is 3306 sql_query = \ SELECT id, group_id, UNIX_TIMESTAMP(date_added) AS date_added, title, content \ FROM documents sql_attr_uint = group_id sql_attr_timestamp = date_added sql_query_info = SELECT * FROM documents WHERE id=$id } # index块设置索引保存目录等 index test1 { source = src1 path = /data/sphinx/ docinfo = extern charset_type = sbcs } # indexer块设置索引选项,比如内存限制大小