elasticsearch 搜索引擎的使用

本文介绍了Elasticsearch搜索引擎的基础知识,包括节点、集群、索引、分片和副本等概念,阐述了Elasticsearch的客户端-Kibana的安装配置,并详细讲解了Elasticsearch的请求方式和数据类型。此外,还提到了分词器的配置,尤其是中文分词的注意事项,并概述了Java客户端的使用方法。
摘要由CSDN通过智能技术生成

1. 常见的搜索引擎介绍

1. Lucene

特点:搜索引擎库,功能强大,接入复杂
Lucene是一款高性能的、可扩展的信息检索工具库。除了高性能外,Lucene对搜索功能开发提供了强大支持,如短语查询、通配符查询、连接查询、分组查询等。但是由于Lucene只是一个库,再加上其自身的专业性和复杂性,开发者在接入Lucene前,必须要深入了解检索的相关知识。为了降低Lucene接入的复杂性,出现了两款针对Lucene的项目应用,即Solr和Elasticsearch。

2. Solr

特点:基于Lucene的搜索引擎服务器
Solr是基于Lucene开发的一个独立的企业级搜索应用服务器。它对外提供基于HTTP请求的Web接口。用户可以直接通过HTTP请求携带相关搜索参数并得到相应的返回结果。

3. Elasticsearch

特点:基于Lucene的搜索引擎服务器,分布式
Elasticsearch也是基于Lucene的搜索引擎应用服务器,采用简单的RESTful API来隐藏Lucene的复杂性。除此之外,Elasticsearch对分布式部署提供了很好的支持,用户不需要过度关注分布式设计的细节,即可实现分布式搜索引擎系统的搭建。因此本次大觅网开发选用Elasticsearch做为搜索引擎服务器来实现商品搜索功能。
gitHub、微博等都是基于es做的搜索。

2. Elasticsearch相关概念

  1. node
    节点,部署Elasticsearch程序的服务器
    即部署Elasticsearch程序的服务器。节点用来存储数据,并参与集群的索引和搜索功能。
  2. cluster
    集群,多个节点组成的架构
    集群中有多个节点,一般包含一个主节点和多个从节点。主节点可以通过选举产生。与传统集群不同,Elasticsearch集群虽有主、从之分,但是对于外部程序调用而言,访问Elasticsearch中的任何一个节点和访问整个集群是等价的。即对于外部调用而言,Elasticsearch是一个去中心化的集群。
  3. index
    索引,相当于关系型数据库的database
    index在Elasticsearch中相当于关系型数据库管理系统中的database。
  4. shard
    索引分片,索引可以被设置为多个分片
    Elasticsearch支持把一个完整的索引分成多个分片,分布到不同的节点上,构成分布式搜索。分片的数量可以在索引创建前指定,索引一旦创建,则不可以再修改分片的数量。
  5. replicas
    索引副本
    Elasticsearch可以对索引设置多个副本,副本一方面可以提高系统的容错性,当某个节点某个分片损坏或丢失时可以使用副本进行恢复。另外副本还可以提高Elasticsearch的查询效率,利用副本,Elasticsearch会自动对搜索请求进行负载均衡。
  6. type
    类型,对应于关系型数据库的table
    对index数据的逻辑划分,相当于关系型数据库的table。
  7. document
    文档,类似于关系型数据库的row
    在Elasticsearch中每一条数据是以JSON格式来进行保存的。每一个JSON数据称之为一个文档。在Elasticsearch中文档对应于关系型数据库表中的一条记录。

3. Elasticsearch客户端-Kibana

在这里插入图片描述
kibana 安装注意事项
需要配置es的地址。
编辑 kibana.yml(在config路径下)配置文件:

elasticsearch.url: "http://192.168.10.208:9200"

4. Elasticsearch请求方式

  1. GET 数据查询

    # 查询所有
    GET _search
    {
         
      "query": {
         
        "match_all": {
         }
      }
    }
    #查看所有的索引
    Get _cat/indices?v # ?v代表状态数据
    #指定索引查询、指定类型查询
    GET /索引名称/类型名称/_search
    # 请求体查询
    # 请求体查询一般使用query子句进行实现
    
    # 查询子句
    #作用
    #可用于精准查询和全文检索查询
    #常用子句
    #match子句 作用:匹配度查询
    GET sc_01/user/_search
    {
         
    	"query": {
         
    		"match": {
         
    			"name":
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值