本文是我们学院课程的一部分,该课程的标题为Java开发人员的Elasticsearch教程 。
在本课程中,我们提供了一系列教程,以便您可以开发自己的基于Elasticsearch的应用程序。 我们涵盖了从安装和操作到Java API集成和报告的广泛主题。 通过我们简单易懂的教程,您将能够在最短的时间内启动并运行自己的项目。 在这里查看 !
1.简介
有效,快速和准确的搜索功能是绝大多数现代应用程序和软件平台的组成部分。 您正在运行的是小型电子商务网站,需要为客户提供产品目录搜索,或者您是服务提供商,需要公开API以使开发人员可以过滤用户和公司,或者您正在构建任何这类消息传递应用程序从一开始就必须在历史中查找对话……真正重要的是,尽可能快地提供相关结果可能是您正在开发的产品或平台的另一个竞争优势。 。
目录
确实,搜索可能具有许多面Kong,目的,目标和不同的规模。 它可能像通过精确的单词匹配查找一样简单,也可能像试图理解一个人正在寻找的单词的意图和上下文含义一样复杂( 语义搜索引擎)。 就规模而言,它可能像查询单个数据库表一样琐碎,也可能像处理数十亿个网页一样复杂以提供所需的结果。 这是一个非常有趣且蓬勃发展的研究领域,多年来发表了许多算法和论文。
如果您是Java / JVM开发人员,则可能听说过Apache Lucene项目,这是一个高性能,功能齐全的索引和搜索库。 这是释放全文搜索功能并将其嵌入到您的应用程序中的第一个也是最好的选择。 尽管它绝对是一个了不起的库,但是许多开发人员发现Apache Lucene的级别太低并且不易于使用。 这就是另外两个伟大的项目Elasticsearch和Apache Solr诞生的原因之一。
在本教程中,我们将讨论Elasticsearch ,重点放在事物的开发方面而不是操作方面。 我们将学习Elasticsearch的基础知识,熟悉术语,并讨论在Java / JVM应用程序或命令行中运行它以及与之通信的不同方法。 在本教程的最后,我们将讨论Elastic Stack,以展示Elasticsearch周围的生态系统及其惊人的功能。
如果您是初级或经验丰富的Java / JVM开发人员,并且对学习Elasticsearch感兴趣,那么本教程绝对适合您。
2. Elasticsearch基础
首先,很高兴回答这个问题:那么, Elasticsearch是什么,它如何帮助我以及为什么要使用它?
Elasticsearch是一个高度可扩展的开源全文本搜索和分析引擎。 它使您可以快速,近乎实时地存储,搜索和分析大量数据。 它通常用作支持具有复杂搜索功能和要求的应用程序的基础引擎/技术。 – https://www.elastic.co/
Elasticsearch是基于Apache Lucene构建的,但是更倾向于通过RESTful API和高级深度分析功能进行通信。 RESTful部分使Elasticsearch特别易于学习和使用。 在撰写本文时, Elasticsearch的最新稳定发行版是5.2
,而最新发行版本是5.2.0
。 我们绝对应该让Elasticsearch家伙保持如此频繁地发布新版本的步伐,因为5.0.x / 5.1.x
分支仅仅成立了几个月……。
从Elasticsearch的角度来看,作为RESTful API的另一个优势是:发送到Elasticsearch或从Elasticsearch接收的每条数据本身都是人类可读的JSON文档(尽管这不是Elasticsearch支持的唯一协议,我们稍后将看到) 。
为了使讨论更切合实际,我们将假装我们正在开发用于管理书籍目录的应用程序。 数据模型将包括类别,作者,出版商,书籍详细信息(例如出版日期,ISBN,等级)和简要说明。
让我们看看如何利用Elasticsearch使我们的书