打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
分布式全文搜索解决方案

1.安装JDK

       ElasticSearch是用JAVA语言开发的,其运行需要安装JDK。

       JDK (Java Development Kit) ,是整个Java的核心,包括了Java运行环境(Java Runtime Envirnment),一堆Java工具和Java基础的类库(rt.jar)。

2.安装Elasticsearch

       安装好后,配置环境变量。

       然后打开命令行窗口 执行命令 elasticsearch -d 启动elasticsearch

       注:该命令行窗口 不要关闭。

       浏览器打开 http://localhost:9200

           出现以上界面,则启动成功    

2.1(选装)安装Elasticsearch-Head

         elasticsearch-head是一个用于浏览ElasticSearch集群并与其进行交互的Web项目

          安装:打开命令行,切换到Elasticsearch-Head目录,执行以下命令 

npm install

             启动:打开命令行,切换到Elasticsearch-Head目录,执行以下命令

npm run start

              由于跨域(Elasticsearch位于9200端口),需要添加配置: E:\elasticsearch-7.1.0\config\elasticsearch.yml中

#新添加的配置行http.cors.enabled: truehttp.cors.allow-origin: "*"

2.2安装Elasticsearch-php

             使用composer安装:在项目目录下,执行以下命令

composer require elasticsearch/elasticsearch

                 配置php.ini的sys_temp_dir

3.ElasticSearch基本使用

3.1 基本概念

         3.1.1 节点与集群

          Elastic 本质上是一个分布式数据库,允许多台服务器python基础教程协同工作,每台服务器可以运行多个 Elastic 实例。

        单个 Elastic 实例称为一个节点(node)。一组节点构成一个集群(cluster)。

       3.1.2 索引

       在Elasticsearch中存储数据的行为就叫做索引(indexing)

       在Elasticsearch中,文档归属于一种类型(type),而这些类型存在于索引(index)中类比传统关系型数据库:

Relational DB -> Databases -> Tables -> Rows -> ColumnsElasticsearch -> Indices   -> Types  -> Documents -> Fields

          Elasticsearch集群可以包含多个索引(indices)(数据库)

        每一个索引可以包含多个类型(types)(表)

        每一个类型包含多个文档(documents)(行)

        然后每个文档包含多个字段(Fields)(列)。

3.2 基本使用

       3.2.1 创建索引

$es = \Elasticsearch\ClientBuilder::create()->setHosts(['127.0.0.1:9200'])->build();$params = [    'index' => 'test_index'];$r = $es->indices()->create($params);dump($r);die;

          预期结果: 

array(3) {  ["acknowledged"] => bool(true)  ["shards_acknowledged"] => bool(true)  ["index"] => string(10) "test_index"}

            3.2.2 添加文档(索引文档)

$es = \Elasticsearch\ClientBuilder::create()->setHosts(['127.0.0.1:9200'])->build();$params = [    'index' => 'test_index',    'type' => 'test_type',    'id' => 100,    'body' => ['id'=>100, 'title'=>'PHP从入门到精通', 'author' => '张三']];$r = $es->index($params);dump($r);die;

               预期结果:

array(8) {  ["_index"] => string(10) "test_index"  ["_type"] => string(9) "test_type"  ["_id"] => string(3) "100"  ["_version"] => int(1)  ["result"] => string(7) "created"  ["_shards"] => array(3) {    ["total"] => int(2)    ["successful"] => int(1)    ["failed"] => int(0)  }  ["_seq_no"] => int(0)  ["_primary_term"] => int(1)}

                3.2.3 修改文档

$es = \Elasticsearch\ClientBuilder::create()->setHosts(['127.0.0.1:9200'])->build();$params = [    'index' => 'test_index',    'type' => 'test_type',    'id' => 100,    'body' => [        'doc' => ['id'=>100, 'title'=>'ES从入门到精通', 'author' => '张三']    ]];$r = $es->update($params);dump($r);die;

                   预期结果:

array(8) {  ["_index"] => string(10) "test_index"  ["_type"] => string(9) "test_type"  ["_id"] => string(3) "100"  ["_version"] => int(2)  ["result"] => string(7) "updated"  ["_shards"] => array(3) {    ["total"] => int(2)    ["successful"] => int(1)    ["failed"] => int(0)  }  ["_seq_no"] => int(1)  ["_primary_term"] => int(1)}

                  3.2.4 删除文档

$es = \Elasticsearch\ClientBuilder::create()->setHosts(['127.0.0.1:9200'])->build();$params = [    'index' => 'test_index',    'type' => 'test_type',    'id' => 100,];$r = $es->delete($params);dump($r);die;

                    预期结果:

array(8) {  ["_index"] => string(10) "test_index"  ["_type"] => string(9) "test_type"  ["_id"] => string(3) "100"  ["_version"] => int(3)  ["result"] => string(7) "deleted"  ["_shards"] => array(3) {    ["total"] => int(2)    ["successful"] => int(1)    ["failed"] => int(0)  }  ["_seq_no"] => int(2)  ["_primary_term"] => int(1)}

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Elasticsearch技术解析与实战读后之一
分布式搜索Elasticsearch源码分析之二------索引过程源码概要分析
搜索引擎ElasticSearch入门
ElasticSearch 倒排索引、分词
C#如何使用ES
ElasticSearch使用
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服