0%

京东搜索实战

项目源码会放在我的网盘 学习-ElasticSearch 目录下的 es-jingdong 压缩包。

添加依赖

新建 SpringBoot 项目,导入 Spring Boot DevTools、Lombok、Spring Configuration Processor、SpringWeb、Thymeleaf 和 Spring Data ElasticSearch 依赖。最后再手动添加 fastjson 依赖。

1
2
3
4
5
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.78</version>
</dependency>
阅读全文 »

整合 SpringBoot 框架

添加依赖

新建 SpringBoot 项目,导入 Spring Boot DevTools、Lombok、Spring Configuration Processor、SpringWeb 和 Spring Data ElasticSearch 依赖。最后再手动添加 fastjson 依赖。

1
2
3
4
5
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.78</version>
</dependency>

ES 配置类

阅读全文 »

核心概念

elasticsearch 是面向文档的关系行数据库,在 elasticsearch 中一切都是 JSON。elasticsearch(集群)中可以包含多个索引(数据库),每个索引中可以包含多个类型(表),每个类型下又包含多个文档(行),每个文档中又包含多个字段(列)。

Relational DB

Elasticsearch

数据库(database)

阅读全文 »

Lucene

Lucene 是一个开放源代码的全文检索引擎工具包,但它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎。Lucene 提供了一个简单却强大的应用程式接口,能够做全文索引和搜寻。

Lucene 是一个全文检索引擎的架构。那什么是全文搜索引擎?

全文搜索引擎是名副其实的搜索引擎,国外具代表性的有 Google、Fast/AllTheWeb、AltaVista、Inktomi、Teoma、WiseNut 等,国内著名的有百度(Baidu)。它们都是通过从互联网上提取的各个网站的信息(以网页文字为主)而建立的数据库中,检索与用户查询条件匹配的相关记录,然后按一定的排列顺序将结果返回给用户,因此他们是真正的搜索引擎。

从搜索结果来源的角度,全文搜索引擎又可细分为两种,一种是拥有自己的检索程序(Indexer),俗称“蜘蛛”(Spider)程序或“机器人”(Robot)程序,并自建网页数据库,搜索结果直接从自身的数据库中调用,如上面提到的 7 家引擎;另一种则是租用其他引擎的数据库,并按自定的格式排列搜索结果,如 Lycos 引擎。

阅读全文 »

哨兵模式(重点)

单哨兵模式

主从切换技术的方法是:当主服务器宕机后,需要手动把一台从服务器切换为主服务器,这就需要人工干预,费时费力,还会造成一段时间内服务不可用。这不是一种推荐的方式,更多时候应优先考虑哨兵模式。

哨兵模式是一种特殊的模式,Redis 提供了哨兵的命令,哨兵是一个进程,它会独立运行。其原理是哨兵通过发送命令,等待 Redis 服务器响应,从而监控运行中的多个 Redis 实例。它能够后台监控主机是否故障,如果故障了根据投票数自动将从库转换为主库。

阅读全文 »