安装Elasticsearch

1.首先要有JDK环境,确保JDK8及以上版本
1.1:需要注册账号下载,可以自己注册,也可以网上搜账号

https://www.oracle.com/java/technologies/javase-jdk11-downloads.html

1.2:配置环境变量:创建变量JAVA_HOME,值是你安装jdk的路径


然后编辑path添加变量

2:安装Elasticsearch服务,选择window。(这里我安装了6.8.8版本)

https://www.elastic.co/cn/downloads/past-releases#elasticsearch

2.1:下好后进入bin目录点击elasticsearch.bat(在window系统中不要关闭)

2.2:访问http://localhost:9200/,Elasticsearch服务安装完成。

详细配置可在官方文档查看。

https://www.elastic.co/guide/en/elasticsearch/reference/6.8/getting-started.html

elasticsearch-php安装使用

1:Elasticsearch-php 的安装需要满足以下 4 个需求:

  • PHP 7.0.0 或更高版本
  • Composer
  • ext-curl:PHP 的 Libcurl 扩展
  • 原生 JSON 扩展 (ext-json) 1.3.7或更高版本

1.1:在cd到你项目下,
更换composer镜像地址,则执行:

composer -g config repo.packagist composer https://packagist.phpcomposer.com

执行以下命令,进行安装

composer require elasticsearch/elasticsearch

Elasticsearch-php安装完成,会在当前目录生成一下目录和文件:composer.json,composer.lock,vendor/

使用脚本示例

<?php
require 'vendor/autoload.php';
$client = new Elasticsearch\Client();

2:案例(mysql)
2.1:创建数据库(elastic)和表(articles)数据测试:

create table articles(id int not null primary key auto_increment,title varchar(200) not null comment '标题',content text comment '内容',price int not null comment '金额'
);insert into articles(title, content) values ('李白', '酒仙刺客',100),
('孙悟空', '腾云驾雾的辜负了紫霞的刺客。',300),
('胡歌', '尽职励志,不错哦。',1000000),
('王者荣耀', '游戏就玩王者荣耀。',98),
('鲁班', '小短腿,谁都想灭。',998),
('妲己', '祸国殃民。',998),
('吕布', '方天画戟,后手放大',2998),
('水晶', '保护我方水晶,进攻地方水晶。',19999);


2.2:php使用Elasticsearch-php

<?php
require './vendor/autoload.php';
use Elasticsearch\ClientBuilder;
class ES {private $client;public function __construct(){$params = array('127.0.0.1:9200');$this->client = ClientBuilder::create()->setHosts($params)->build();}//创建索引function createIndex($index_name = 'aki'){$params = ['index' => $index_name,'body' => ['settings' => ['number_of_shards' => 2,'number_of_replicas' => 0],]];return $this->client->indices()->create($params);}//是否存在索引public function existsIndex($index_name = 'aki'){$params = ['index' => $index_name];if($this->client->indices()->exists($params)){return true;}return false;}// 删除索引public function delIndex($index_name = 'aki') {$params = ['index' => $index_name];if($this->client->indices()->exists($params)){$this->client->indices()->delete($params);// echo "true";return true;}// echo "false";return false;}// 添加文档public function addDoc($id,$doc,$index_name = 'aki',$type_name = 'form') {$params = ['index' => $index_name,'type' => $type_name,'id' => $id,'body' => $doc];return $this->client->index($params);}// 判断文档存在public function existsDoc($id = 1,$index_name = 'aki',$type_name = 'form') {$params = ['index' => $index_name,'type' => $type_name,'id' => $id];return $this->client->exists($params);}// 获取文档public function getDoc($id = 1,$index_name = 'aki',$type_name = 'form') {$params = ['index' => $index_name,'type' => $type_name,'id' => $id];return $this->client->get($params);}// 更新文档public function updateDoc($id,$doc,$index_name = 'aki',$type_name = 'form') {// 可以灵活添加新字段,最好不要乱添加$params = ['index' => $index_name,'type' => $type_name,'id' => $id,'body' => ['doc' =>$doc]];return $this->client->update($params);}// 删除文档public function delDoc($id,$index_name = 'aki',$type_name = 'form') {$params = ['index' => $index_name,'type' => $type_name,'id' => $id];return $this->client->delete($params);}// 查询文档 (分页,排序,权重,过滤)public function searchDoc($keywords = "竞赛",$index_name = "aki",$type_name = "form",$sort = [],$from = 0,$size = 10) {$params = ['index' => $index_name,'type' => $type_name,'body' => ['query' => ['bool' => ['should' => [[ 'match' => [ 'title' => ['query' => $keywords,'boost' => 3, // 权重大]]],[ 'match' => [ 'content' => ['query' => $keywords,'boost' => 2,]]],],],],// 'sort' => ['prices'=>['order'=>'desc']], 'from' => $from, 'size' => $size]];$results = $this->client->search($params);//        $maxScore  = $results['hits']['max_score'];
//        $score = $results['hits']['hits'][0]['_score'];
//        $doc   = $results['hits']['hits'][0]['_source'];return $results['hits']['hits'];}
}//--------------------------------------------------------------------------------------------//测试实例:$es = new ES();//使用mysql测试// $es->delIndex("mysql");// $es->createIndex("mysql");       //创建索引$ismysql = false;if($ismysql == true){// $es->delIndex("mysql");$isidnex = $es->existsIndex("mysql");if($isidnex == false){$es->createIndex("mysql");        //创建索引}try {$servername = "localhost";$username = "root";$password = "123";$dbname = "elastic";//   // 创建连接$conn = new mysqli($servername, $username, $password, $dbname);// Check connectionif ($conn->connect_error) {die("连接失败: " . $conn->connect_error);} $sql = "select * from articles";$result = $conn->query($sql);if ($result->num_rows > 0) {//        // 输出数据while($row = $result->fetch_assoc()) {// if(empty($es->getDoc($row['id'],"mysql"))){//    $es->addDoc($row['id'],$row,"mysql");// }$es->addDoc($row['id'],$row,"mysql");}$r = $es->searchDoc("李白 歌 水","mysql");echo "<pre>";print_r($r);} else {echo "0 结果";}$conn->close();$r = $es->searchDoc("李白 歌 水","mysql");} catch (Exception $e) {echo $e->getMessage();}}else{// $es->delIndex();$isidnex = $es->existsIndex();if($isidnex == false){$es->createIndex();       //创建索引}//静态测试数据测试$docs = [];$docs[] = ['id'=>1,'title'=>'李白','content'=>'酒仙刺客','price'=>100];$docs[] = ['id'=>2,'title'=>'孙悟空','content'=>'腾云驾雾的辜负了紫霞的刺客。','price'=>300];$docs[] = ['id'=>3,'title'=>'胡歌','content'=>'尽职励志,不错哦。','price'=>1000000];$docs[] = ['id'=>4,'title'=>'王者荣耀','content'=>'游戏就玩王者荣耀。','price'=>998];$docs[] = ['id'=>5,'title'=>'鲁班','content'=>'小短腿,谁都想灭。','price'=>98];$docs[] = ['id'=>6,'title'=>'妲己','content'=>'祸国殃民。','price'=>998];$docs[] = ['id'=>7,'title'=>'吕布','content'=>'方天画戟,后手放大','price'=>2998];$docs[] = ['id'=>8,'title'=>'水晶','content'=>'保护我方水晶,进攻地方水晶。','price'=>19999];foreach ($docs as $k => $v) {$es->addDoc($v['id'],$v);      //添加文档};$r = $es->searchDoc("李白 歌 水");echo "<pre>";print_r($r);}

测试数据显示:

全文搜索引擎Elasticsearch安装(Windows),elasticsearch-php使用案例相关推荐

  1. 06-linux下Elasticsearch安装 设置Elasticsearch

    1.设置Elasticsearch 本节包含有关如何设置Elasticsearch并使其运行的信息,其中包括: 下载 安装 开始 配置 1.1 支持的平台 正式支持的操作系统和JVM的矩阵可在此处获得 ...

  2. 【全文搜索引擎】Elasticsearch相关介绍与linux系统安装

    概念 Elasticsearch是一个基于Lucene的搜索服务器.它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口.Elasticsearch是用Java语言开发的,并作为 ...

  3. ElasticSearch 全文搜索引擎的查询详解①(Ubuntu版 v6.6.2)

    ElasticSearch 全文搜索引擎的查询详解①(Ubuntu版 v6.6.2) 1. 前提 2. 轻量搜索 2.1 单条件查询 2.2 多条件查询 2.3 不指定属性查询(查询所有文档属性)-- ...

  4. Elasticsearch 安装配置及学习

    何为全文搜索? 全文搜索本质:非结构化数据转成结构化数据,提取非结构化数据 全文搜索是一种将文件中所有文件与搜索项匹配的文字资料检索方法 原理:建立本库 ---> 建立索引 ---> 执行 ...

  5. 全文搜索引擎 Elasticsearch 安装

    elasticsearch 官网 简介 Elasticsearch 是一个分布式可扩展的实时搜索和分析引擎,一个建立在全文搜索引擎 Apache Lucene™ 基础上的搜索引擎.当然 Elastic ...

  6. 全文搜索引擎 Elasticsearch 简介 及其与 Python 的对接实现

    什么是 Elasticsearch 想查数据就免不了搜索,搜索就离不开搜索引擎,百度.谷歌都是一个非常庞大复杂的搜索引擎,他们几乎索引了互联网上开放的所有网页和数据.然而对于我们自己的业务数据来说,肯 ...

  7. ElasticSearch 全文搜索引擎

    一.ElasticSearch 简介 1.什么是 ElasticSearch? Elaticsearch,简称为es, es是一个开源的高扩展的分布式全文检索引擎,它可以近乎实时的存储.检索数据:本身 ...

  8. ElasticSearch 全文搜索引擎;ES 搜索引擎

    一.ElasticSearch 简介 1.什么是 ElasticSearch? Elaticsearch,简称为es, es是一个开源的高扩展的分布式全文检索引擎,它可以近乎实时的存储.检索数据:本身 ...

  9. ElasticSearch全文搜索引擎

    一.ElasticSearch简介 1.1 什么是ElasticSearch ElasticSearch简称ES,其中Elastic      从名字里我们可以知道,ES的特点就在于灵活的搜索,其实E ...

  10. 一文看懂-ElasticSearch全文搜索引擎

    一文看懂-ElasticSearch全文搜索引擎 一.ElasticSearch简介 1.1 什么是ElasticSearch ElasticSearch简称ES,其中Elastic 从名字里我们可以 ...

最新文章

  1. 旷视张祥雨:神经网络架构设计新思路
  2. JavaScript之图片操作3
  3. Python源码剖析[16] —— Pyc文件解析
  4. 从基础开始:Qomo OpenProject中的一些关键词
  5. 【线程】线程基本函数
  6. 批量删除table或view
  7. cannot instantiate the type
  8. Flink的累加器和广播变量、广播流、分布式缓存
  9. Ubuntu上安装Maven3
  10. specular图使用方法_Unity| Specular高光反射初探(上)
  11. Spring Boot Admin工程搭建(Eureka)
  12. 游戏党,iQOO Neo5这部手机能玩目前流行的大型手游吗?
  13. git中.ssh文件夹在哪_关于git中的https和ssh,权限等问题
  14. Java实习日记(2-2)
  15. 达梦数据库技术分享索引贴
  16. 逆思维:GAN不能生成什么?Seeing What a GAN Cannot Generate
  17. unity3d开发AR/VR应用
  18. Tiled 编辑地形后 输出简化
  19. 从0到1,反距离加权IDW(Inverse Distance Weighted Interpolation) 插值变形算法
  20. 服务器负载过高的处理方式

热门文章

  1. 校内集训11.1小结
  2. 区块链游戏项目(战舰游戏)基于layer2区块链技术,使用以太坊的solidity语言, 含全栈完整源码
  3. 成都五月花计算机专业学校单招,成都五月花高级技工学校这所单招学校如何
  4. Fabric学习笔记——一、环境搭建(小白入门)
  5. Huffman编码/译码问题
  6. ARM的合法立即数与非法立即数
  7. 场内场外交易成本_开放式基金的场内交易和场外交易有什么区别?
  8. 密码找回,验证码绕过漏洞详解
  9. 基于Arduino控制的网格循迹小车
  10. 岁月的剪影【你是人间四月天】