当前位置: 代码网 > it编程>软件设计>搜素引擎 > 企业级搜索引擎elasticsearch安装笔记以及常用搜索引擎 Elasticsearch、Solr、sphinx的了解

企业级搜索引擎elasticsearch安装笔记以及常用搜索引擎 Elasticsearch、Solr、sphinx的了解

2024年08月03日 搜素引擎 我要评论
之前试着装过一次ElasticSearch,印象深刻的是当时还不能使用root用户来启动ES。今天再来安装一下ElasticSearch,ES是一个基于Lucene的搜索服务器,是当前流行的企业级搜索引擎,它提供了一个分布式多用户能力的全文搜索引擎,并提供了基于RESTful web接口,非常方便系统之间对接。这里示例用两种安装方式,一是使用apt安装,二是直接下载文件安装(我这服务器是DEBIAN操作系统,下载deb文件)。

一、企业级搜索引擎elasticsearch安装笔记

    之前试着装过一次elasticsearch,印象深刻的是当时还不能使用root用户来启动es。今天再来安装一下elasticsearch,es是一个基于lucene的搜索服务器,是当前流行的企业级搜索引擎,它提供了一个分布式多用户能力的全文搜索引擎,并提供了基于restful web接口,非常方便系统之间对接。
    elasticsearch可以有多种安装方式,官网上有详细的文档:installing elasticsearch | elasticsearch reference [6.0] | elastic 这里示例用两种安装方式,一是使用apt安装,二是直接下载文件安装(我这服务器是debian操作系统,下载deb文件)。

1. 使用apt安装elasticsearch

     elasticsearch是使用java开发的,因此需要先安装jdk。

#如有需要进行安装或者更新jdk
root@n04007:~# sudo apt install default-jdk
root@n04007:~# sudo apt upgrade default-jdk
#安装成功之后查看java版本
root@n04007:~# java -version 
java version "1.8.0_91"
java(tm) se runtime environment (build 1.8.0_91-b14)
java hotspot(tm) 64-bit server vm (build 25.91-b14, mixed mode)
#将es的地址写入apt源里更新源后安装
root@n04007:~# sudo apt-get install apt-transport-https
root@n04007:~# sudo echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list
deb https://artifacts.elastic.co/packages/7.x/apt stable main
root@n04007:~# sudo apt-get update && sudo apt-get install elasticsearch

2. 下载deb文件进行安装

    在使用上面的sudo apt-get install elasticsearch进行安装的时候发现速度特别慢,每秒只有几十k,无法忍受。于是想下载下来安装,elasticsearch的下载地址:download elasticsearch | elastic 选择对应的操作系统文件下载,目前已经达到了elasticsearch-7.7.1挺好三个。

#先确保有jdk环境然后下载deb文件安装
user@u04007:~$ sudo apt install default-jdk
user@u04007:~$ wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.7.1-amd64.deb
--2020-06-15 16:29:21--  https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.7.1-amd64.deb
resolving artifacts.elastic.co (artifacts.elastic.co)... 151.101.110.222, 2a04:4e42:1a::734
connecting to artifacts.elastic.co (artifacts.elastic.co)|151.101.110.222|:443... connected.
http request sent, awaiting response... 200 ok
length: 314485362 (300m) [application/octet-stream]
saving to: ‘elasticsearch-7.7.1-amd64.deb’
#使用dpkg -i elasticsearch-7.7.1-amd64.deb安装
user@u04007:/opt/elasticsearch$ sudo dpkg -i elasticsearch-7.7.1-amd64.deb 
unpacking elasticsearch (7.7.1) ...
setting up elasticsearch (7.7.1) ...
created elasticsearch keystore in /etc/elasticsearch/elasticsearch.keystore
processing triggers for systemd (232-25+deb9u12) ...
user@u04007:/opt/elasticsearch$ sudo /etc/init.d/elasticsearch 
[ ok ] usage: /etc/init.d/elasticsearch {start|stop|restart|force-reload|status}.
#启动elasticsearch
user@u04007:/opt/elasticsearch$ sudo /etc/init.d/elasticsearch start
[ ok ] starting elasticsearch (via systemctl): elasticsearch.service.

    我这里下载的是deb包,deb包是debian,ubuntu等linux发行版的软件安装包,是类似于rpm的软件包,需要管理员权限来安装一个 .deb 文件。

    sudo dpkg -i package_file.deb 。但是在包含有依赖关系的安装包手动安装的过程中会出现安装不成功的问题,这时只需输入命令:sudo apt-get -f install 安装即可。需要卸载安装包只需要输入:sudo dpkg -r package_name。

3. 安装成功后调用测试

    最后安装成功并成功启动elasticsearch之后,可以直接访问本机地址来查看es的restful接口返回的数据。

user@u007:/opt/elasticsearch$ curl  http://127.0.0.1:9200/?pretty
{
  "name" : "n21-045-025",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "wfcb5iets2awycjwlroykq",
  "version" : {
    "number" : "7.7.1",
    "build_flavor" : "default",
    "build_type" : "deb",
    "build_hash" : "ad56dce891c901a492bb1ee393f12dfff473a423",
    "build_date" : "2020-05-28t16:30:01.040088z",
    "build_snapshot" : false,
    "lucene_version" : "8.5.1",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "you know, for search"
}

二、关于搜索引擎elasticsearch、solr以及sphinx

1. 关于 lucene

      先了解一个很重要的核心的概念:lucene,apache lucene是apache软件基金会的一个项目,是一个开放源代码的全文检索引擎工具包,但它并不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎(英文与德文两种西方语言)。基本可以说lucene是当今最先进,最高效的全功能开源搜索引擎框架。而我们这里提到的elasticsearch和solr都建立在全文搜索引擎apache lucene基础上的搜索引擎。

2. 关于solr 

    solr是apache的私生子,是apache lucene项目的开源企业搜索平台。其主要功能包括全文检索、命中标示、分面搜索、动态聚类、数据库集成,以及富文本(如word、pdf)的处理。solr是高度可扩展的,并提供了分布式搜索和索引复制。solr是最流行的企业级搜索引擎,solr4 还增加了nosql支持。

3. 关于elasticsearch

    elasticsearch是第三方作者shay banon使用java开发的,他是报着让java程序嵌入搜索变得更容易的目的打造了自己第一个开源作品“compass”,即“指南针”的意思。后来shay找到了一份面对高性能分布式开发环境的新工作,因工作需要,他决定重写compass,将它从一个库打造成了一个独立的server,并将其改名为elasticsearch。

     elasticsearch并不仅仅是lucene这么简单,它不但包括了全文搜索功能,还可以进行分布式实时文件存储,并将每一个字段都编入索引,使其可以被搜索。并且可以实时分析的分布式搜索引擎。另外还可以扩展到上百台服务器,处理pb级别的结构化或非结构化数据。

4. 关于sphinx

    sphinx是由俄罗斯人andrew aksyonoff使用c++开发的一个全文检索引擎。意图为其他应用提供高速、低空间占用、高结果 相关度的全文搜索功能。sphinx可以非常容易的与sql数据库和脚本语言集成。当前系统内置mysql和postgresql 数据库数据源的支持,也支持从标准输入读取特定格式 的xml数据。通过修改源代码,用户可以自行增加新的数据源(例如:其他类型的dbms 的原生支持)。

 5. 性能对比

    性能对比我就不写文章了,需要花费很多的时间去做测试,而且网上已有对sphinx和solr的性能对比、 elasticsearch和solr的性能对比,可以参考:

a. solr与sphinx的比较 - 搜索引擎 - 软件开发 - 深度开源

b. 搜索引擎选择: elasticsearch与solr - 心随梦飞[fosilzhou] - 博客园

    其它的搜索引擎还有:katta,hadoop contrib/index,linkedin,lucandra,hbasene等,东西真的不少。任何方面深入一下总感觉光这一方面一辈子也学不完。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com