全文检索

用 Elasticsearch 解决 MySQL/MariaDB 的 LIKE %Keyword% 中英文混合查询问题

例如有电子产品型号和参数等属性表,需要输入完整或不完整型号或参数,可以使中文或部分英文,查询百万数量级电子器件。 这样查关系数据库的弊端是,当数据量到数百万级时,无论是使用全文检索,还是 LIKE 查询,或分字段 OR 或者 UNION,或者拆表等各种方案,查询耗时均超过 2 秒,用户体验上难以接受。这时,我们排除 SQL Server/Oracle 等商业数据库,可替换更高性能的数据库 PostgreSQL,DB2 Express 缩短查询时间,还可替换 MongoDB 勉强解决,但更佳方案是用 Elasticsearch 来实现。

在 CentOS 7 下安装 Elasticsearch 7.3

全文检索是普遍的需求,从最初 MySQL 支持中文全文索引后,十万级数据量 LIKE 查询方案到 Apache Lucene,到 Solr,然后基于 Lucene 的 Elasticsearch 给世界带来了更好的解决方案,它是目前全文搜索引擎首选。它可以快速储存、搜索和分析海量数据。Wikipedia、Stack Overflow、Github 等公司都用它支撑海量数据业务。 本文旨在指导你在 CentOS 7 下安装 Elasticsearch 7.3。本安装过程应已经过笔者反复测试,以确保成功。