ElasticSearch全文搜索引擎整合thinkphp

下载文件解压到
ThinkPHP\Library\Vendor\

  1. <?php
  2. namespace Home\Controller;
  3. use Think\Controller;
  4. class EcController extends Controller
  5. {
  6. public function _initialize()
  7. {
  8. Vendor(‘Elasticsearch.autoload‘);
  9. $params[‘hosts‘] = array(
  10. ‘127.0.0.1:9200‘
  11. );
  12. $this->client = new \Elasticsearch\Client($params);
  13. }
  14. public function create_index()
  15. {
  16. $indexParams[‘index‘] = ‘my_index‘;
  17. $indexParams[‘type‘] = ‘my_index‘;
  18. $indexParams[‘body‘][‘settings‘][‘number_of_shards‘] = 2;
  19. $indexParams[‘body‘][‘settings‘][‘number_of_replicas‘] = 0;
  20. $this->client->create($indexParams);
  21. }
  22. public function add_document()
  23. {
  24. $params = array();
  25. $params[‘body‘] = array(
  26. ‘testField‘ => ‘dfdsfdsf‘
  27. );
  28. $params[‘index‘] = ‘my_index‘;
  29. $params[‘type‘] = ‘my_index‘;
  30. $params[‘id‘] = ‘w1231313‘;
  31. $ret = $this->client->index($params);
  32. }
  33. public function delete_index()
  34. {
  35. $deleteParams[‘index‘] = ‘my_index‘;
  36. $this->client->indices()->delete($deleteParams);
  37. }
  38. public function delete_document()
  39. {
  40. $deleteParams = array();
  41. $deleteParams[‘index‘] = ‘my_index‘;
  42. $deleteParams[‘type‘] = ‘my_index‘;
  43. $deleteParams[‘id‘] = ‘AU4Kmmj-WOmOrmyOj2qf‘;
  44. $retDelete = $this->client->delete($deleteParams);
  45. }
  46. public function update_document()
  47. {
  48. $updateParams = array();
  49. $updateParams[‘index‘] = ‘my_index‘;
  50. $updateParams[‘type‘] = ‘my_index‘;
  51. $updateParams[‘id‘] = ‘my_id‘;
  52. $updateParams[‘body‘][‘doc‘][‘asas‘]  = ‘111111‘;
  53. $response = $this->client->update($updateParams);
  54. }
  55. public function search()
  56. {
  57. $searchParams[‘index‘] = ‘my_index‘;
  58. $searchParams[‘type‘] = ‘my_index‘;
  59. $searchParams[‘from‘] = 0;
  60. $searchParams[‘size‘] = 100;
  61. $searchParams[‘sort‘] = array(
  62. ‘_score‘ => array(
  63. ‘order‘ => ‘desc‘
  64. )
  65. );
  66. // $searchParams[‘body‘][‘query‘][‘match‘][‘testField‘] = ‘abc‘;
  67. $retDoc = $this->client->search($searchParams);
  68. print_r($retDoc);
  69. }
  70. public function get_document()
  71. {
  72. $getParams = array();
  73. $getParams[‘index‘] = ‘my_index‘;
  74. $getParams[‘type‘] = ‘my_index‘;
  75. $getParams[‘id‘] = ‘AU4Kn-knWOmOrmyOj2qg‘;
  76. $retDoc = $this->client->get($getParams);
  77. print_r($retDoc);
  78. }
  79. }
  80. ?>

Elasticsearch.zip

时间: 2024-08-07 00:17:52

ElasticSearch全文搜索引擎整合thinkphp的相关文章

全文搜索引擎 ElasticSearch 还是 Solr?

最近项目组安排了一个任务,项目中用到了全文搜索,基于全文搜索 Solr,但是该 Solr 搜索云项目不稳定,经常查询不出来数据,需要手动全量同步,而且是其他团队在维护,依赖性太强,导致 Solr 服务一出问题,我们的项目也基本瘫痪,因为所有的依赖查询都无结果数据了.所以考虑开发一个适配层,如果 Solr 搜索出问题,自动切换到新的搜索--ES. 其实可以通过 Solr 集群或者服务容错等设计来解决该问题.但是先不考虑本身设计的合理性,领导需要开发,所以我开始踏上了搭建 ES 服务的道路,从零开始

全文搜索引擎选 ElasticSearch 还是 Solr?

最近项目组安排了一个任务,项目中用到了基于 Solr 的全文搜索,但是该 Solr 搜索云项目不稳定,经常查询不出来数据,需要手动全量同步. 而且它还是其他团队在维护,依赖性太强,导致 Solr 服务一出问题,我们的项目也基本瘫痪,因为所有的依赖查询都无结果数据了. 所以考虑开发一个适配层,如果 Solr 搜索出问题,自动切换到新的搜索 ES.其实可以通过 Solr 集群或者服务容错等设计来解决该问题. 但是先不考虑本身设计的合理性,领导需要开发,所以我开始踏上了搭建 ES 服务的道路,从零开始

全文搜索引擎Elasticsearch初探

前言: 在Web应用或后台数据管理中,随着数据量的倍数增长,搜索引擎特别是全文搜索引擎的应用越来越迫切.基于技术和成本考虑,我们不可能去开发一个搜索引擎以满足我们的需求,庆幸的是业界已有许多优秀的开源搜索引擎可供我们使用,Elasticsearch便是其中之一. 简介: Elasticsearch是一个基于Apache Lucene(TM)的开源搜索引擎.无论在开源还是专有领域,Lucene可以被认为是迄今为止最先进.性能最好的.功能最全的搜索引擎库.但是,Lucene只是一个库.想要使用它,你

全文搜索引擎 Elasticsearch 介绍

全文搜索属于最常见的需求,开源的 Elasticsearch (以下简称 Elastic)是目前全文搜索引擎的首选. 它可以快速地储存.搜索和分析海量数据.维基百科.Stack Overflow.Github 都采用它. Elastic 的底层是开源库 Lucene.但是,你没法直接用 Lucene,必须自己写代码去调用它的接口.Elastic 是 Lucene 的封装,提供了 REST API 的操作接口,开箱即用. 原文地址:https://www.cnblogs.com/jacksonxi

3.高并发教程-基础篇-之分布式全文搜索引擎elasticsearch的搭建

高并发教程-基础篇-之分布式全文搜索引擎elasticsearch的搭建 如果大家看了我的上一篇<2.高并发教程-基础篇-之nginx+mysql实现负载均衡和读写分离>文章,如果能很好的利用,那么其实已经可以轻松日抗千万级别的访问量了,但是如果业务涉及查询比较多,查询条件比较丰富,又或者我就想要查询的响应更快点,那么在mysql上面去做优化,其实比较辛苦,有没有更好的解决方案呢?答案是肯定的!它就是我们今天的主角,分布式全文搜索引擎elasticsearch. 技巧提示:mysql集群层主要

全文搜索引擎 Elasticsearch 入门

1. 百科 ElasticSearch是一个基于Lucene的搜索服务器.它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口.Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎.设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便. 2. 安装 依赖Java8,本文在Linux上运行 下载.解压 $ wget https://artifacts.elastic.co/downloads/ela

全文搜索引擎 Elasticsearch 入门教程

全文搜索属于最常见的需求,开源的 Elasticsearch (以下简称 Elastic)是目前全文搜索引擎的首选. 它可以快速地储存.搜索和分析海量数据.维基百科.Stack Overflow.Github 都采用它. Elastic 的底层是开源库 Lucene.但是,你没法直接用 Lucene,必须自己写代码去调用它的接口.Elastic 是 Lucene 的封装,提供了 REST API 的操作接口,开箱即用. 本文从零开始,讲解如何使用 Elastic 搭建自己的全文搜索引擎.每一步都

ES(ElasticSearch)分布式全文搜索引擎

1.什么是ES**ES** 全称 **ElasticSearch** 是一种分布式全文搜索引擎,基于Lucene(全文搜索框架)开发而来.Lucene是公认的迄今为止的最好用的搜索引擎库,但是他所提供的API对于我们使用者来说,是非常苦恼的,常要花费大量时间去熟悉学习.ES的出现就很好的解决了这个问题,良好的封装,易用的API,链式书写方式,开瓶即饮.2.ES特点**ES** 虽然是以Lucene核心库开发的,但是却不是以它作为核心,**ES** 的贴点体现在: *分布式实时文件存储,每个字段皆

学习用Node.js和Elasticsearch构建搜索引擎(一)

最近的项目要用到快速全文检索,经过前期的调研,最后选用Elasticsearch搭建搜索服务器.以前做的项目中没用过这个搜索引擎,这是第一次使用. 主要是参照 <如何用 Node.js 和 Elasticsearch 构建搜索引擎>这篇文章学习的,这篇文章翻译得很好,整个过程都走下来了很流畅. 下面记录一下本人按照这篇文章的学习过程: 1.学习Elasticsearch概述. 了解Elasticsearch是什么?能做什么?可以查一下elasticsearch.lucene等的相关介绍,另外也