前言搜索引擎在人们的日常生活中发挥着越来越重要的作用。随着开源软件的普及与发展,涌现出了许多优秀的搜索软件,如Elasticsearch、Solr等。其中,Elasticsearch以大规模分布式搜索见长,而Solr则以分面搜索见长。
本书选择Elasticsearch作为实现搜索引擎的工具。Elasticsearch具有强大的分布式搜索和可视化功能,不仅丰富了实现搜索引擎的方法,而且还使复杂抽象的数据结构与算法变得直观而鲜活,因此在国外被迅速地引入到人工智能的相关课程中。
本书全面、系统地介绍了分布式搜索引擎的相关内容及Elasticsearch中的Java代码实现。本书内容既注重基础知识,又非常注重实践,每章都提供了大量的实例程序。读者可以通过这些实例快速上手,并迅速提高搜索引擎开发技术。通过对本书内容的学习,读者不仅可以掌握搜索引擎开发的基本知识,而且还可以灵活地将Elasticsearch运用到解决实际问题当中,从而提升工作效率。
本书特色1.内容全面,结构合理本书首先介绍了Elasticsearch的安装和基本使用方法,然后介绍了从搜索到内容监控等方方面面的知识。在内容安排上,本书根据读者的认知规律对学习梯度做了合理安排,降低了学习难度。
2.讲解详尽,实例丰富本书对每个技术要点都做了细致入微的介绍,并且在讲解的过程中提供了丰富的实例,而且每个实例都经过精挑细选,具有很强的针对性,特别是本书最后的应用案例,更是对相关技术的一个全面应用。另外,书中所有实例的实现代码都考虑了通用性,读者可以直接将代码移植过来加以修改,即可解决自己的实际问题。
3.语言通俗,图文并茂本书用通俗易懂的语言进行讲解,尽量避免生疏的专业术语。在讲解一些重要知识点时,书中给出了大量的图示及实例运行结果,帮助读者更加直观、高效地理解所学内容。
4.提供配套教学PPT,使学习更高效为了便于读者高效、直观地学习本书内容,作者特意针对每章的重点内容制作了教学PPT,这些PPT和本书的实例源文件都会免费提供给读者下载。
本书内容本书共分8章,具体内容介绍如下:
第1章Elasticsearch开发搜索引擎应用,主要介绍了搜索引擎开发方面的一些基础知识和Elasticsearch开发环境的安装,并对Java API与Elasticsearch搜索集群的交互也做了介绍。
第2章开发中文搜索引擎,主要介绍了中文搜索引擎开发的相关内容,包括中文分词原理和中文分词插件开发等。
第3章Mapping详解,主要介绍了Mapping概念及如何使用Mapping,包括Mapping索引、Mapping数据类型、Mapping参数和动态Mapping等。
第4章深入源码分析,详细分析了Elasticsearch源代码,主要内容包括Lucene源码分析、启动搜索服务、Guice框架、日期和时间库、Transport模块、线程池、模块、Netty通信框架、缓存、分布式、Zen发现机制、联合搜索和JVM字节码等。
第5章提高搜索相关性,主要介绍了向量空间检索模型、BM25检索模型、学习评分、查询意图识别和图像特征提升检索体验等内容。
第6章搜索界面开发,涵盖的主要内容包括使用Searchkit实现搜索界面;Spring Boot入门;Java模板引擎Pebble介绍;通过Spring-data-elasticsearch项目访问Elasticsearch;REST基本概念;使用Vue.js开发搜索界面;使用Vue.js Paginator插件实现翻页;实现搜索接口;Suggester搜索词提示;Word2vec挖掘相关搜索词;部署网站;使用Rust开发搜索界面等。
第7章Elastic栈系统监控,主要介绍了使用Elasticsearch和相关软件实现系统监控,包括管理Elasticsearch集群、Logstash数据处理工具、Filebeats文件收集器、消息过期、Kibana可视化平台、Flume日志收集系统、Kafka分布式流平台和Graylog日志管理平台等内容。
第8章案例分析,主要介绍了双语句对搜索、内容管理系统站内检索,以及使用Elasticsearch搜索公开的药物临床试验项目信息等几个案例。
本书读者对象?信息检索技术爱好者;?搜索引擎开发人员;?搜索引擎优化(SEO)人员;?从事算法研究的技术人员;?高等院校理工科专业的学生和老师。
本书配套资源及获取方式为了方便读者高效学习,本书特意提供了以下配套资源:
?本书配套教学PPT;?本书源代码文件;?本书涉及的一些开发工具的安装包。
这些配套资源需要读者自行下载,请登录机械工业出版社华章公司的网站www.hzbook.com,搜索到本书,然后在页面上的“资料下载”模块下载即可。
本书作者本书由罗刚主笔编写,其他参与编写的人员有张子宪、沙芸、柳若边、崔智杰、石天盈、张继红、罗庭亮。
在此感谢我的家人、同事及所有在本书写作过程中提供过帮助的人!另外,本书在编写过程中参考了一些开源代码,在此对相关作者也一并表示感谢!
虽然我们对书中所述内容都尽量核实,并进行了多次校对,但由于写作时间仓促,加之作者水平所限,书中可能还存在疏漏和错误之处,恳请广大读者批评、指正。联系我们,请发电子邮件到
[email protected]。
罗刚于北京