tp5+ElasticSearch安装及使用

TP5 elasticsearch使用 在thinkPHP 5 框架中使用composer安装Es扩展 composer require elasticsearch/elasticsearch 创建索引 public function index() { $es = ClientBuilder::create()->setHosts(['127.0.0.1:9200'])->build(); $params = [ 'index' => 'movies' 阅读详情

环境

php 7.2
elasticsearch 6.2 下载
elasticsearch-php 6 下载

安装 elasticsearch

下载源文件,解压,重新建一个用户,将目录的所属组修改为此用户,因为 elasticsearch 无法用 root 用户启动。

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.2.3.tar.gztar zxvf elasticsearch-6.2.3.tar.gz
useradd elasticsearch
passwd elasticsearch
chown -R elasticsearch:elasticsearch elasticsearch-6.2.3
mv elasticsearch-6.2.3 /usr/local/elasticsearch-6.2.3
yum install java-1.8.0-openjdk.x86_64  //安装jdk
su elasticsearch
cd /usr/local/elasticsearch-6.2.3
./bin/elasticsearch  // 启动

安装 PHP 扩展

我这里使用的是 composer 安装 elasticsearch-php。在 composer.json 文件中加入 "elasticsearch/elasticsearch": "~6.0",执行 composer update

tp5使用实例

index/index/index

<?php
namespace app\index\controller;
use Elasticsearch\ClientBuilder;
class Index
{
//配置
    private $config = [
        'hosts' => ['http://127.0.0.1:9200']
    ];
    private $api;
    
    public function __construct()
    {
        #include(APP_PATH .'/vendor/autoload.php');
        #require_once EXTEND_PATH . 'org/elasticsearch/autoload.php';
        import('org.elasticsearch.autoload', EXTEND_PATH);
        $this->api = ClientBuilder::create()->setHosts($this->config['hosts'])->build(); 
    }
 
    /*************************************************************
    /**
     * 索引一个文档
     * 说明:索引没有被创建时会自动创建索引
     */
    public function addOne()
    {
        $params = [];  
        $params['index'] = 'xiaochuan';  
        $params['type']  = 'cat';  
        $params['id']  = '20180407001';  # 不指定就是es自动分配
        $params['body']  = array('name' => '小川编程');  
        $ret = $this->api->index($params);
        var_dump($ret);
    }
 
    /**
     * 索引多个文档
     * 说明:索引没有被创建时会自动创建索引
     */
    public function addAll()
    {
        $params = [];
        for($i = 1; $i < 21; $i++) {  
            $params['body'][] = [
                'index' => [
                    '_index' => 'test_index'.$i,
                    '_type'  => 'cat_test',
                    '_id'    => $i,
                ]
            ];  
            $params['body'][] = [  
                'name' => '小川编程'.$i,  
                'content' => '内容'.$i  
            ];
        }  
        $ret = $this->api->bulk($params);  
        var_dump($ret);
    }
 
    /**
     * 获取一个文档
     */
    public function getOne()
    {
        $params = [];  
        $params['index'] = 'xiaochuan';  
        $params['type']  = 'cat';  
        $params['id']    = '20180407001';  
        $ret = $this->api->get($params); 
        var_dump($ret);
    }
 
    /**
     * 搜索文档
     */
    public function search()
    {
        $params = [];
        $params['index'] = 'xiaochuan';  
        $params['type']  = 'cat';  
        $params['body']['query']['match']['name'] = '小川编程';  
        $ret = $this->api->search($params); 
        var_dump($ret);
    }
 
    /**
     * 删除文档
     * 说明:文档删除后,不会删除对应索引。
     */
    public function delete()
    {
        $params = [];  
        $params['index'] = 'xiaochuan';  
        $params['type'] = 'cat';  
        $params['id'] = '20180407001';  
        $ret = $this->api->delete($params);  
        var_dump($ret);
    }
 
    /*************************************************************
    /**
     * 创建索引
     */
    public function createIndex()
    {
        $params = [];
        $params['index']  = 'xiaochuan1'; 
        $ret = $this->api->indices()->create($params);
        var_dump($ret);
    }
       
      /**
     * 删除索引:匹配单个 | 匹配多个
     * 说明: 索引删除后,索引下的所有文档也会被删除
     */
      public function deleteIndex()
      {  
          $params = [];
          $params['index'] = 'xiaochuan1';  # 删除test_index单个索引
          #$params['index'] = 'test_index*'; # 删除以test_index开始的所有索引
          $ret = $this->api->indices()->delete($params);  
          var_dump($ret);
      }
 
      /*************************************************************
      /**
     * 设置索引配置
     */
      public function setIndexConfig()
      {  
          $params = [];
          $params['index'] = 'xiaochuan';  
          $params['body']['index']['number_of_replicas'] = 0;  
          $params['body']['index']['refresh_interval'] = -1;  
          $ret = $this->api->indices()->putSettings($params);  
          var_dump($ret);
      }
 
      /**
     * 获取索引配置
     */
      public function getIndexConfig()
      {
          # 单个获取条件写法
        $params['index'] = 'xiaochuan';  
        # 多个获取条件写法
        //$params['index'] = ['xiaochuan', 'test_index'];  
        $ret = $this->api->indices()->getSettings($params);  
        var_dump($ret);
      }
 
    /**
     * 设置索引映射?
     */
      public function setIndexMapping()
      {
          #  设置索引和类型 
        $params['index'] = 'xiaochuan';  
        $params['type']  = 'cat';  
           
        #  向现有索引添加新类型
        $myTypeMapping = array(  
            '_source' => array(  
                'enabled' => true  
            ),  
            'properties' => array(  
                'first_name' => array(  
                    'type' => 'string',  
                    'analyzer' => 'standard'  
                ),  
                'age' => array(  
                    'type' => 'integer'  
                )  
            )  
        );  
        $params['body']['cat'] = $myTypeMapping;  
           
        #  更新索引映射 
        $ret = $this->api->indices()->putMapping($params);  
        var_dump($ret);
      }
 
      /**
     * 获取索引映射
     */
      public function getIndexMapping()
      {  
          #  获取所有索引和类型的映射  
        $ret = $this->api->indices()->getMapping();  
         
        /*  
        #  获取索引为:xiaochuan的映射
        $params['index'] = 'xiaochuan';  
        $ret = $this->api->indices()->getMapping($params);  
           
        #  获取类型为:cat的映射
        $params['type'] = 'cat';  
        $ret = $this->api->indices()->getMapping($params);  
           
        #  获取(索引为:xiaochuan和 类型为:cat)的映射
        $params['index'] = 'xiaochuan';  
        $params['type']  = 'cat'  
        $ret = $this->api->indices()->getMapping($params);  
           
        #  获取索引为:xiaochuan和test_index的映射
        $params['index'] = ['xiaochuan', 'test_index'];  
        $ret = $this->api->indices()->getMapping($params); 
        */
        var_dump($ret);
      }
}
tp5 php ES的使用 分布式全文搜索解决方案 1.解决方案介绍 ElasticSearch是一个基于RESTful web接口的分布式全文搜索引擎。 本解决方案是基于Mysql数据库 、 Hadoop生态(可选)、 ElasticSearch搜索引擎大数据系统实现一个分布式全文搜索系统。 主要包括数据接入、数据索引和全文搜索3个模块。适用于各种项目的各种搜索场景。 1.1 三大数据系统 1.1.1关系型数据库 用于对商品,用户等各种数据进行结构化存储。 关系型数据库对于事务性非常高的OLTP1操作(比如订单,结. 阅读详情

相关推荐

国产FPGA逆袭!深度评测复旦微RFVU3P5G核心板在相控阵雷达中的表现

本文深度评测了复旦微RFVU3P5G核心板在相控阵雷达中的实战表现。该核心板凭借射频直采架构、高采样率ADC/DAC及丰富的DSP资源,在多通道同步精度、动态范围及系统稳定性等关键指标上表现出色,展现了国产FPGA在高端雷达应用中的硬核实力与供应链自主价值。

b0c1d2的博客 650

最新php中es整合项目(Elasticsearch高级篇整合tp后台)

以下后台使用thinkphp5.1、Elasticsearch7.14.1、ik分词器集成 1索引列表 2、添加索引 3、设置字段 4、添加文档 5、修改文档 6、查询索引并分页

php-yyds 4541

华为OD机试双机位C卷-简单的解压缩算法(C/C++/Py/Java/Js/Go)

华为OD机试(机考)双机位C卷 【简单的解压缩算法】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD真题【简单的解压缩算法】。

qq_45776114的博客 441

THINKPHP6使用ElasticSearch6以上搜索引擎

网上的很多都是讲ES5的过时的。现在ES6之后有点变动了,搞了一天一夜才搞通,现在分享出来让大家少走点弯路。首先下载ES,6以上的要JRE8以上才可以,不兼容安装不了,注意ES版本要和中文分词插件IK版本一致,不然用不了。我这边提供下载,是6.2.3版本的,已经集成IK了,下载之后解压到非网站目录就可以了。链接: https://pan.baidu.com/s/1j-MWtj46ykDMFn8RO...

c571013930的博客 6496

TP5.0中如何完整的实现ES搜索商品的完整功能?

安装 Elasticsearch 客户端:使用 Composer 安装 Elasticsearch 的 PHP 客户端。创建索引和映射:定义索引和字段映射。索引商品数据:将商品数据索引到 Elasticsearch 中。查询商品:根据用户输入的关键词查询商品。通过这种方式,可以实现高性能、实时的商品搜索功能,并且可以根据具体需求定制查询条件和展示方式。

长风破浪会有时的博客 1449

【黄啊码】什么是ElasticSearch?它会替代MySQL成为主流吗?如何优化?TP5如何接入ElasticSearch

【黄啊码】什么是ElasticSearch?它会替代MySQL成为主流吗?如何优化?TP5如何接入ElasticSearch

黄啊码 2139

最新php中tp5使用es(Elasticsearch安装篇)

安装环境:window安装为列,Elasticsearch版本Elasticsearch7.14.1 官方下载地址https://www.elastic.co/downloads/elasticsearch head插件下载地址:https://github.com/mobz/elasticsearch-head,下载zip包 如无node须先安装下node 1、下载后解压安装包 2、打开config->修改elasticsearch.yml 3、修改配置允许外部访...

php-yyds 1844

php tp5.0 ES的安装使用

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

weixin_51531777的博客 521

elasticsearch简单调用高亮展示

1. 切换到ES的bin目录 双击elasticsearch.bat 启动elasticsearch服务 或者

zbc_xcm的博客 349

php与thinkphp与elasticsearch

php与thinkphp与elasticsearch 该文章是根据windows环境下搭建elasticsearch使用tp5.0一起操作 1.安装elasticeserch需要支持java环境和node.js (百度下载安装配置环境变量) !!!!!!!!!!!注意安装的各个版本需要相互协调 当出现该页面则安装成功 2.需要在tp框架中安装es需要的插件 使用composer安装下载即可(可以cmd 进入框架执行该命令) composer require elasticsearch/elastic

鹏!的博客 645

ElasticSearch配置及tp5使用(windows)

1.安装java se 环境 2.下载ES https://www.elastic.co/cn/downloads/past-releases/elasticsearch-6-8-3 这里下的是6.x 切换到ES的bin目录 双击elasticsearch.bat 启动elasticsearch服务 问题1:ElasticsearchException[X-Pack is not su...

qq_38738033的博客 2082

分布式搜索引擎ES-elasticsearch入门

正排索引:相当于文档中的一条条记录;例子:汉语值得学习;汉语是语言;汉语学习视频;倒排索引:起源于实际应用中需要根据属性的值来查询记录。这种索引表的每一项都包括一个属性值和包含该属性值得各个记录地址。由于不是根据记录来确定属性,而是根据属性来确定记录的位置。可以记录文档的ids,词频跟位置例子:汉语值得学习;汉语是语言;汉语学习视频;单词文档ids词频TF;位置POS汉1,2,3语1,2,3值得11:1:<3>学习1,3是21:1;<3>言2。

TOMORROW6COME的博客 1995

tp5 使用elasticSearch - es

extend\tools\es 下 生成一个类 <?php namespace tools\es; use Elasticsearch\ClientBuilder; class MyElasticsearch { //ES客户端链接 private $client; /** * 构造函数 * MyElasticsearch constructor. */ public function __construct() { ...

J2778322217的博客 1557

Elasticsearch安装使用,这一篇就够了

Elasticsearch安装使用,这一篇就够了

qq_38055805的博客 7940

最新php中tp5使用es(Elasticsearch7.14使用篇)

中文参考文档 安装篇 1、连接es use Elasticsearch\ClientBuilder; private $client; public function __construct() { $this->client = ClientBuilder::create()->setHosts(['localhost:9200'])->build(); } 2、创建索引(相当mysql数据库) index为索引名字 分片讲..

php-yyds 2276

Thinkphp5使用Elasticsearch

Thinkphp5使用Elasticsearch 使用的阿里云Elasticsearch服务,免去安装步骤 1.tp项目中安装Elasticsearch-php插件 ,composer安装 安装版本与elasticsearch版本一致,我这边elasticsearch7.7.1,安装elasticsearch-php 7.0 ,大版本一致的情况下DSL语法不会有很大差别. 2.项目中引入 3.使用(新建索引,映射索引,插入索引文档,查询索引文档,更新索引文档) a.新建索引(相当于mysql新建表)

qq_43094071的博客 3140

Tp5中结合es的使用

es的使用: 安装:docker pull elasticsearch:7.12.1 创建目录: mkdir /docker/es mkdir /docker/es/conf mkdir /docker/es/data mkdir /docker/es/plugins 创建文件: touch /docker/es/conf/elasticsearch.yml 配置文件: cluster.name: my-application #集群名称 node.name: node-1 #节点名称

weixin_43303719的博客 3273

tp5.0使用elasticsearch

1.安装elasticsearch扩展:composer require elasticsearch/elasticsearch // 构造函数 public function __construct() { $params = array( '127.0.0.1:9200' ); $this->client = ClientBuilder::create()->setHosts($params)->build(); } // 获取文档 publ

qq_40750454的博客 323

thinkphp5 使用ElasticSearch 做搜索

一,安装Java SE环境 在安装Elasticsearch引擎之前,必须安装ES需要的软件环境,安装Java JDK和配置JAVA_HOME环境变量: 1,从https://www.oracle.com/technetwork/java/javase/downloads/index.html下载安装Java SE开发包,我下载的是最新版本如图: ElasticSearch对JRE的版...

Srodong的博客 1万+

UPS仿真报告matlab

matlab课程报告,后备式不间断供电系统的设计。。。

上一篇: elasticsearch-head 跨域问题
下一篇: centos7 安装 hyperf
myydan
博客等级 码龄16年 31粉丝 88原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值