`
qindongliang1922
  • 浏览: 2189578 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
7265517b-f87e-3137-b62c-5c6e30e26109
证道Lucene4
浏览量:117689
097be4a0-491e-39c0-89ff-3456fadf8262
证道Hadoop
浏览量:126090
41c37529-f6d8-32e4-8563-3b42b2712a50
证道shell编程
浏览量:60046
43832365-bc15-3f5d-b3cd-c9161722a70c
ELK修真
浏览量:71421
社区版块
存档分类
最新评论

ElasticSearch入门之风花雪月(五)

    博客分类:
  • ELK
阅读更多


以前经常有人问散仙,如何学好搜索? 其实这个问题很具有代表性,你可以归纳为一类问题? 其实,散仙在以前博客的中,也有总结过,大家可以点击这个链接再看一下

本篇散仙要介绍的内容,是关于如何用Luke查看ElasticSearch的索引,那么为什么会写如此一篇文章呢?

相信学过或了解过全文检索的朋友们,都知道,搜索的核心的就是倒排索引,之所以我们能够使用Google在互联网的海量的数据中,通过关键词快速定位到我们想要的数据,就是因为倒排索引在这里起了非常大的作用,在搜索中索引通常是不可见的,我们只知道能通过搜索某些关键词找到我们想要的信息,而并不知道,在倒排索引中,他们所有的倒排词是什么样的,这也就是很多时候,我们经常会很奇怪,为什么我搜索的这个词没有返回结果呢?

如果没有返回结果,基本能够证明它在索引中,是不存在的,或者有时候,我们搜索了中国人,能够搜索数据,但是如果搜索中国,却搜不到数据? 这一切都跟倒排有关? 如果我们出现上面的一些问题,那么该怎么办呢?





莫慌,如果对分词很了解的朋友们,基本上都很够找到原因,因为索引里面的数据,是需要经过分词,然后在索引的,其实就是把一篇文章,切成不同的token也称(term),检索的关键词只要和这些token匹配,基本就能搜索到数据,当然这是很复杂的流程,在Lucene里,要经过语法树分析,优化,查询,评分,排序等。

ElasticSearch虽然也是构建与Lucene之上,但是ElasticSearch却重写了自己独有的倒排表存取解析格式,所以直接使用Luke来打开elasticSearch的索引,是不会成功的。

而Solr在这一方面就表现的非常好,完全兼容Lucene,他们的索引互相之间可以共用,从这一方面来讲,Apache Solr应该是正统的Lucene的系的企业级搜索框架,而ElasticSearch由于改写的内容比较多,所以与原始的Lucene偏差相对较大,不过它仍然是基于Lucene构建的一款优秀的全文检索框架。


回答文章开始提出的问题,如果在检索的某些词的时候,没有返回任何数据,此时我们就可以使用luke来打开所以查看,倒排表的索引数据。

下面,看下如何编译打包支持ElasticSearch的Luke:

(1)在GigHub上,check出luke的源码
(2)修改此项目的pom文件,添加elasticsearch支持:

   <!-- ElasticSearch -->
        <dependency>
            <groupId>org.elasticsearch</groupId>
            <artifactId>elasticsearch</artifactId>
            <version>1.4.4</version>
        </dependency>

3,执行mvn package命令,打包jar,执行完成后会在target目录下生成一个luke-with-deps.jar的文件

4,解压此jar包,将luke-with-deps.jar\META-INF\services下的org.apache.lucene.codecs.PostingsFormat文件打开,在文件的末尾,添加如下三行elasticsearch的索引格式读写的类全名


org.apache.lucene.codecs.lucene40.Lucene40PostingsFormat
org.apache.lucene.codecs.lucene41.Lucene41PostingsFormat
org.elasticsearch.index.codec.postingsformat.BloomFilterPostingsFormat
org.elasticsearch.index.codec.postingsformat.Elasticsearch090PostingsFormat
org.elasticsearch.search.suggest.completion.Completion090PostingsFormat

5,添加完成后,再次放入压缩包中,然后在命令行执行java -jar luke-with-deps.jar 即可打开Luke,然后我们就可以在界面选择elasticsearc的索引,进行查看了。

注意一点,当索引为空的时候,luke会报一个异常:
There are no postings in the index reader的异常,这并不影响luke的正常使用,大家可以直接忽略!

不想自己打包jar的朋友们,可以在微信公众号里留言,散仙会发到大家邮箱里的,iteye这里有限制,jar包比较大,超出了范围,所以在这里上传不了,请大家谅解




参考资料:

https://simpsora.wordpress.com/2014/05/06/using-luke-with-elasticsearch/

http://youku.io/questions/429202/elasticsearch-and-luke

http://lingpipe-blog.com/2012/07/24/using-luke-the-lucene-index-browser-to-develop-search-queries/






想了解更多有关电商互联网公司的搜索技术和大数据技术的使用,请欢迎扫码关注微信公众号:我是攻城师(woshigcs)
本公众号的内容是有关搜索和大数据技术和互联网等方面内容的分享,也是一个温馨的技术互动交流的小家园,有什么问题随时都可以留言,欢迎大家来访!



  • 大小: 223.5 KB
  • 大小: 40.1 KB
  • 大小: 33.2 KB
0
1
分享到:
评论

相关推荐

    ElasticSearch入门到精通(基于ELK技术栈ElasticSearch7.8.版本).rar

    **Elasticsearch 入门到精通** Elasticsearch 是一个高度可扩展的开源全文搜索引擎,设计用于处理大量数据,提供实时分析和搜索功能。它基于 Lucene 库,但提供了更高级别的分布式、RESTful 风格的搜索和数据分析...

    《ElasticSearch入门到实战》电子书,从入门到进阶实战项目的教程文档,框架SpringBoot框架整合ES.zip

    **Elasticsearch 入门与实战** Elasticsearch 是一个基于 Lucene 的开源全文搜索引擎,以其分布式、可扩展性、实时搜索以及强大的数据分析能力而受到广泛欢迎。它不仅支持文本搜索,还可以处理结构化和非结构化数据...

    ElasticSearch入门.pdf

    Elaticsearch,简称为es, es是一个开源的高扩展的分布式全文检索引擎,它可以近乎实时的存储、检索数据;本身扩展性很好,可以扩展到上百台服务器,处理PB级别的数据。es也使用Java开发并使用Lucene作为其核心来...

    es入门操作-elasticsearch入门操作

    "Elasticsearch 入门操作" Elasticsearch 是一个基于 Lucene 库的搜索引擎,提供了一个分布式、支持多用户的全文搜索引擎,具有 HTTP Web 接口和无模式 JSON 文档。所有其他语言可以使用 RESTful API 通过端口 9200...

    (狂神)ElasticSearch快速入门笔记,ElasticSearch基本操作以及爬虫(Java-ES仿京东实战)

    (狂神)ElasticSearch快速入门笔记,ElasticSearch基本操作以及爬虫(Java-ES仿京东实战),包含了小狂神讲的东西,特别适合新手学习,笔记保存下来可以多看看。好记性不如烂笔头哦~,ElasticSearch,简称es,es是一个...

    ElasticSearch入门到精通到运维全套资料

    全套 elasticsearch从入门到精通到运维 基于ES5.6版本 有视频 文档 快速上手

    Elasticsearch入门教程

    ### Elasticsearch入门教程知识点详解 #### 一、Elasticsearch安装与基本操作 1. **解压目录结构**: - 在解压后的Elasticsearch目录中,通常包含多个子目录和文件,例如`bin`目录包含了启动脚本,`config`目录...

    Elasticsearch入门学习笔记

    这篇入门学习笔记将引导初学者了解如何安装、配置以及使用Elasticsearch。 首先,让我们从安装开始。要安装Elasticsearch,你可以访问官方网站(https://www.elastic.co/cn/downloads/elasticsearch)下载最新版本...

    Elastic Search搭建使用教程.pdf(内含ElasticSearch教程权威指南)

    Elasticsearch是一款基于Lucene的开源搜索引擎,它使用RESTful接口进行数据操作,数据以JSON格式存储。Elasticsearch以其高效的全文搜索功能,实时数据处理能力,以及易于使用的特性,在众多企业中得到了广泛应用,...

    ElasticSearch实战教程

    "ElasticSearch实战教程" ElasticSearch是一款分布式、RESTful 风格的搜索和数据分析引擎,能够达到近实时搜索,稳定,可靠,快速...本教程旨在帮助您快速入门ElasticSearch,掌握ElasticSearch的基本概念和实战应用。

    Elasticsearch 6.1官方入门教程.rar

    **Elasticsearch 6.1 入门教程详解** Elasticsearch是一款强大的开源搜索引擎,以其分布式、实时、可扩展和高容错性而备受青睐。在6.1版本中,它进一步提升了性能和稳定性,提供了更丰富的功能。本文将基于"Elastic...

    Elasticsearch入门.zip

    Elasticsearch是一款强大的开源搜索引擎,尤其在大数据领域中被广泛应用。它基于Lucene库构建,提供了分布式、...这个“大数据elasticsearch开源搜索引擎安装包”将带你踏入Elasticsearch的世界,开启数据探索之旅。

    Elasticsearch 入门.pdf

    Elasticsearch 入门

    最完整的Elasticsearch 基础教程

    Elasticsearch 是一款高度可扩展的全文搜索引擎,广泛应用于大数据分析、日志分析、实时搜索等领域。本教程将深入浅出地介绍Elasticsearch的基础知识,帮助初学者快速上手。 1. **Elasticsearch 概述** - Elastic...

    Elasticsearch入门(五):Elasticsearch基础概念与基本操作 文章中所用用到的 http 文件

    在Elasticsearch的世界里,理解基础概念和掌握基本操作是入门的关键。本篇文章将深入探讨这些知识点,并结合提供的`es.http`和`es_book.http`文件进行阐述。 首先,我们要了解Elasticsearch的核心概念: 1. **节点...

    第一章 ElasticSearch入门篇.docx

    "ElasticSearch 入门篇" ElasticSearch 是一个基于 Lucene 的搜索服务器,提供了一个分布式多用户能力的全文搜索引擎,基于 RESTful web 接口。ElasticSearch 是用 Java 开发的,并作为 Apache 许可条款下的开放...

    ES查询客户端,elasticsearch可视化工具 elasticsearch查询客户端

    Elasticsearch(简称ES)是一款强大的开源搜索引擎,广泛应用于数据检索、分析和管理。作为分布式、RESTful风格的搜索和数据分析引擎,Elasticsearch能够提供实时、高可用性以及可扩展的搜索功能。在进行日常的数据...

    Elasticsearch入门讲解

    Elasticsearch 入门讲解 1. ELASTICSEARCH 初识 Elasticsearch(简称ES)是一款基于Lucene的开源分布式搜索引擎,以其强大的全文检索、实时分析和高可扩展性而闻名。它不仅用于传统的搜索功能,还广泛应用于日志...

    bboss-elasticsearch开发环境搭建和开发入门视频教程.

    **Elasticsearch 开发环境搭建与 BBoss 入门教程** Elasticsearch 是一个高度可扩展的开源全文搜索引擎,设计用于快速提供近实时的搜索和分析能力。BBoss(Business Boss)是基于Elasticsearch的一个强大且灵活的...

    ES基础入门培训-零基础门槛

    Search入门详解:开启你的搜索之旅 ElasticSearch(ES)是一个强大的、基于Lucene的开源搜索服务器,专门设计用于云计算环境。它提供了实时、稳定、可靠且可扩展的搜索和分析功能,支持RESTful接口,使得操作简单...

Global site tag (gtag.js) - Google Analytics