ELEASTATICSEARCH - 技术教程文章

Elasticsearchik插件如果能精准查中文?

Elasticsearch(ik)中生成了以下索引例结构如下例array(5) {["_index"]=>string(10) "n_index"["_type"]=>string(9) "n_type"["_id"]=>string(20) "AVXdrZDVceqO8Q-vidP2"["_score"]=>float(0.5171687)["_source"]=>array(5) {["id"]=>int(111)["title"]=>string(82) "北京16款现代300顶级配置"}}```比如我建了好多这样的索引 title字段列表如下 "北京16款现代300顶级配置" "16款现代300北京顶级配置" "北京16款起亚顶级配置" "北京...

elasticsearch-哪位朋友知道es-php或mmanos/laravel-search的查询结果高亮问题

以下代码是laravel+elastisearch-php(https://github.com/elastic/elasticsearch-php)实现的,但是不能返回高亮内容,网上看了https://segmentfault.com/a/1190000003010186 下面有一个例子提到高亮,但mmanos的不太会用,比如如何找指定索引下指定类型的某个查询?不乱以上哪种方式,哪位朋友能指点一二,感谢!!!$params=['index' => 'n_index','type' => 'n_type','body' => ['query' => ['match' => ['ntitle' => '要查询的词...

用elasticsearch-phplaravel为什么不能返回高亮数据?

namespace App\Http\Controllers\Search;use Illuminate\Http\Request;use App\Http\Requests;use App\Http\Controllers\Controller;use Elasticsearch\Client;class Index extends Controller {protected $client;public function __construct(Client $client){$this->client = $client;}public function search_test(Request $request,$filter='list'){$word = trim($request->input('word'));$s=is_null($request->input('s'))?...

Elasticsearch与MongoDB数据同步及分布式集群搭建(二)

上一篇《Elasticsearch与MongoDB 数据同步及分布式集群搭建 (一)》我们已经配置了一个Elasticsearch与MongoDB 数据同步高可用,可扩展以及分布式是ES的一个优势和特色,扩展垂直扩展或者向上扩展,VerticalScale/Scaling Up,或是水平扩展或者向外扩展,Horizontal Scale/Scaling Out。一个节点会运行一个ES的实例,一个集群则会包含拥有相同cluster.name的一个或者多个节点,这些节点共同工作来完成数据共享和负载分担。随着节点...

elasticsearch创建索引时的一些选项问题

我想用elasticsearch为博客的文章做站内搜索,后台用的php。 文章表articles的全部字段如下: id title content user_id created_at updated_at 现在我想为文章表的title字段、content字段、updated_at字段,共三个字段创建索引。 下面是我参照elasticsearch-php客户端的官方文档写的创建索引blog和创建类型article的demo,分词用到了ik分词。 其中有些选项不太清楚什么意思,具体问题在下面代码中(有4个),请...

Elasticsearch做站内搜索,索引与mysql数据表同步问题

使用Elasticsearch做站内搜索,后台框架是laravel,所以使用的这个laravel包,"Elasticquent"(https://github.com/elasticquent/Elasticquent), 问题:假如mysql中有一个artiles表,现在有新的article加入,那么,Elasticsearch的索引怎么自动同步mysql的artiles表中的数据?回复内容:使用Elasticsearch做站内搜索,后台框架是laravel,所以使用的这个laravel包,"Elasticquent"(https://github.com/elasticquent/Elasticquent), ...

elasticsearch的php客户端使用问题?【图】

这是文档,https://www.elastic.co/guide/en/elasticsearch/client/php-api/current/_quickstart.html问题在截图中:补充: 谢谢答主 @lyt8384 。有点理不清思路,麻烦答主能否帮演示一下下面的示例: 要实现的效果就是在视图中的搜索框中输入关键词,搜索得到结果,主要问题是不知道控制器应该怎么写。 备注:github上的封装好像看起来都挺久没更新了,不知道对最新版本的elasticsearch支持怎么样,所以我想直接用官方的php客户端...

用Elasticsearch做站内搜索,在windows上安装好了之后怎么使用?

我的windows 10 上有wnmp环境,现在安装Elasticsearch 2.3.3来试用一下(做站内搜索),下面是参照了一些百度到的资料后,安装Elasticsearch 2.3.3的过程记录: windows 10上安装Elasticsearch过程记录一、安装和配置Java JDK 1、下载:http://download.oracle.com/otn-pub/java/jdk/8u92-b14/jdk-8u92-windows-x64.exe 2、设置环境变量: (1)点击【系统变量】下的【新建】按钮 变量名: JAVA_HOME 变量值: C:\Program Files\J...

怎么使mysql的数据和Elasticsearch的数据保持实时同步?

最近在做一个项目,需要使用Elasticsearch做一个商品搜索,应该怎样做才能使mysql的数据和Elasticsearch的数据保持实时同步,我现在能想到的就是每次涉及到数据库操作的时候都去更新Elasticsearch,但是这样的话对原来的程序需要修改的地方就太多了,因为原来的使用的仅仅是mysql,求一个比较好的解决方案,谢谢!!!回复内容:最近在做一个项目,需要使用Elasticsearch做一个商品搜索,应该怎样做才能使mysql的数据和Elasticsear...

请大神帮解答一下`elasticsearch`的相关问题,看文档看不出个步骤来

已完成工作描述: 1、已在本地windows机器上安装好了elasticsearch及相关插件。 2、然后在laravel中安装好了elasticsearch-php客户端。 3、写了如下这么一个SearchController控制器: client = \Elasticsearch\ClientBuilder::create()->build();}public function index(){$params = ['index' => 'node','type' => 'article','body' => ['query' => ['match_all' => []]]];$response = $this->client->search($params);print_r($re...

使用LaravelSearch扩展包基于Elasticsearch、Algolia以及ZendSearch实现全文搜索功能

Laravel Search扩展包为不同的全文搜索服务提供了统一的API,当前支持的搜索服务包括 ElasticSearch 、 Algolia 和 ZendSearch 。 1、安装 我们通过Composer来安装这个依赖包: composer require mmanos/laravel-search dev-master 安装完成后,在 config/app.php 中注册服务提供者到 providers 数组: providers => array( // ... Mmanos\Search\SearchServiceProvider::class,) 然后添加门面到 al...

elasticsearch-ThinkPHP如何使用Composer

要用一下elasticsearch,但是不知道怎么在thinkphp中用composer管理第三方类库回复内容:要用一下elasticsearch,但是不知道怎么在thinkphp中用composer管理第三方类库首先,你是否真正了解composer呢,在你没有使用任何框架的时候 你也可以使用composer的 比如说,我新建了一个文件夹,里面写入一个新文件composer.json { "require": { }} 即使现在你更新 会发生什么呢。composer只是一个中包管理工具而已,你用不用它都在哪儿,你...

elasticsearch使用聚合分组后,分页怎么处理?

这两天在使用es,但由于是初学现在遇到了一个问题就是聚合后分页的问题。比如在mysql中,我们使用group by后可以使用limit形式去获取分页的数据;但es中我好像找不到这种指定区间的从而实现分页。不聚合的时候我知道指定from的size参数能分页。请问有做过这方面的朋友指教下吗?回复内容:这两天在使用es,但由于是初学现在遇到了一个问题就是聚合后分页的问题。比如在mysql中,我们使用group by后可以使用limit形式去获取分页的数据...

Yii2-elasticsearch怎么用啊?

想把自己的博客用上 ElasticSearch 搜索,用的是 Yii2-elasticsearch 扩展 搞了半天不会用,没搞明白 elasticsearch 是个怎么回事,是要把 Mysql 中的数据弄到 ES 中去吗? 难道每次都要到msql中去把数据找出来,再一个一个赋值给 ES 吗? $posts = Post::find()->all();$postElastic = new PostElastic(); $postElastic->attributes = ['name' => $postElastic[0]->name]; 要像上面这样嘛?那也太蛋疼了吧 但是直接 Contents::fin...

关于elasticsearch模糊查询

我有个用户表,对于每个人都有个type字段存储其分类信息,如type=1,data0=姓名;type=2,data0=好友数,请问我现在想用es模糊搜索姓名并且按朋友数降序,应该怎么写回复内容:我有个用户表,对于每个人都有个type字段存储其分类信息,如type=1,data0=姓名;type=2,data0=好友数,请问我现在想用es模糊搜索姓名并且按朋友数降序,应该怎么写

轻松集成新版Elasticsearch7.9中文搜索到Laravel7项目【代码】【图】

下面由Laravel教程栏目给大家介绍如何轻松集成新版Elasticsearch7.9中文搜索到Laravel7项目,希望对需要的朋友有所帮助! 只需五步骤:1.启动 集成ik中文分词插件的Elasticsearch7.9 Docker镜像2.Laravel7 配置 Scout3.配置 Model模型4.导入数据5.搜索演示地址www.ar414.com/search?query=php%E5%...搜索范围文章内容标题标签结果权重出现关键词数量出现关键词次数搜索页面高亮显示分词显示结果分页前言...

Laravel使用scout集成elasticsearch做全文搜索的实现方法

本文介绍了Laravel使用scout集成elasticsearch做全文搜索的实现方法,分享给大家,具体如下: 安装需要的组件composer require tamayo/laravel-scout-elastic composer require laravel/scout 如果composer require laravel/scout 出现报错Using version ^6.1 for laravel/scout ./composer.json has been updated Loading composer repositories with package information Updating dependencies (including require-dev) Your re...

Elasticsearch实现复合查询高亮结果功能

一.Es的配置 实现es的全文检索功能的第一步,首先从与es进行连接开始,这里我使用的是es的5.x java api语法. public TransportClient esClient() throws UnknownHostException{Settings settings = Settings.builder().put("cluster.name", "my-application") //节点的名字.put("client.transport.sniff", true).build();InetSocketTransportAddress iAddress = new InetSocketTransportAddress( //连接es的ip地址和端口号InetAddres...

Elasticsearch.Net使用教程 MVC4图书管理系统(2)【图】

本文实例为大家分享了MVC4图书管理系统的制作教程,供大家参考,具体内容如下 首先项目结构图:Model层的相关代码如下: Book.cs代码如下:public class Book { [Key] [DatabaseGenerated(DatabaseGeneratedOption.Identity)] public Guid Id { get; set; } [MaxLength(500)] [Display(Name = "标题")] public string Title { get; set; } [MaxLength(5000)] [Display(Name = "前言")] public string Foreword { get; set; } [Display...

安装ElasticSearch搜索工具并配置Python驱动的方法【图】

ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是第二流行的企业搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。 我们建立一个网站或应用程序,并要添加搜索功能,令我们受打击的是:搜索工作是很难的。我们希望我们的搜索解决方案要快,我们希望有一个零...

使用Python操作Elasticsearch数据索引的教程【图】

Elasticsearch是一个分布式、Restful的搜索及分析服务器,Apache Solr一样,它也是基于Lucence的索引服务器,但我认为Elasticsearch对比Solr的优点在于:轻量级:安装启动方便,下载文件之后一条命令就可以启动; Schema free:可以向服务器提交任意结构的JSON对象,Solr中使用schema.xml指定了索引结构; 多索引文件支持:使用不同的index参数就能创建另一个索引文件,Solr中需要另行配置; 分布式:Solr Cloud的配置比较...

开始使用ElasticSearch(四)之将SqlServer数据库数据导入ES【代码】【图】

开始导数据之前考虑必须考虑清楚需要什么。1.导入数据需要读数据库 JDBC Connector(因为这个是基于JAVA的)2.中间件工具Logstash (这个ES官网提供的)那么开始咯。试试看呀伐!把**JDBC for SQL**解压到D盘(我只是做个示范噢。)把Logstash解压到D盘。注意看下我的两个版本,我把我的数据库版本也贴出来,这样更直观。思路:Logstash 来使用 JDBC 驱动连接sql数据库查询出表数据输出到ES端。 打开Logstash文件夹---lib---新建文件...

ElasticSearch 索引 VS MySQL 索引【图】

前言这段时间在维护产品的搜索功能,每次在管理台看到 elasticsearch 这么高效的查询效率我都很好奇他是如何做到的。 这甚至比在我本地使用 MySQL 通过主键的查询速度还快。 为此我搜索了相关资料: 这类问题网上很多答案,大概意思呢如下:ES 是基于 Lucene 的全文检索引擎,它会对数据进行分词后保存索引,擅长管理大量的索引数据,相对于 MySQL 来说不擅长经常更新数据及关联查询。说的不是很透彻,没有解析相关的原理;不过既然...

干货 | Debezium实现Mysql到Elasticsearch高效实时同步【代码】【图】

题记来自Elasticsearch中文社区的问题—— MySQL中表无唯一递增字段,也无唯一递增时间字段,该怎么使用logstash实现MySQL实时增量导数据到es中?logstash和kafka_connector都仅支持基于自增id或者时间戳更新的方式增量同步数据。 回到问题本身:如果库表里没有相关字段,该如何处理呢? 本文给出相关探讨和解决方案。 1、 binlog认知 1.1 啥是 binlog? binlog是Mysql sever层维护的一种二进制日志,与innodb引擎中的redo/undo lo...

实战 | canal 实现Mysql到Elasticsearch实时增量同步【代码】【图】

题记关系型数据库Mysql/Oracle增量同步Elasticsearch是持续关注的问题,也是社区、QQ群等讨论最多的问题之一。 问题包含但不限于: 1、Mysql如何同步到Elasticsearch? 2、Logstash、kafka_connector、canal选型有什么不同,如何取舍? 3、能实现同步增删改查吗? ..... 本文给出答案。1、Canal同步 1.1 canal官方已支持Mysql同步ES6.X 同步原理,参见之前: 干货 | Debezium实现Mysql到Elasticsearch高效实时同步。 canal 1.1.1版本...

Elasticsearch 类比 mysql 实现 in and like or【代码】

"about","中华人民共和国")).must(QueryBuilders.termQuery("firstName","张")) or select * from user where about=‘中华人民共和国‘ and firstName=‘王’ QueryBuilders.boolQuery().should(QueryBuilders.termQuery("about","中华人民共和国")).should(QueryBuilders.termQuery("firstName","王")) and or 连用 select * from user where firstName=‘张‘ and( firstName=‘王’ or about=‘中华人民共和国公民‘)QueryBui...

Nutch2.3+Mongodb+ElasticSearch【代码】

Nutch诞生于2002年8月,是Apache旗下的一个用Java实现的开源搜索引擎项目,自Nutch1.2版本之后,Nutch已经从搜索引擎演化为网络爬虫,接着Nutch进一步演化为两大分支版本:1.X和2.X,这两大分支最大的区别在于2.X对底层的数据存储进行了抽象以支持各种底层存储技术。 Apache Nutch v2.3已经发布了,建议所有使用2.X系列的用户和开发人员升级到这个版本。这个版本提供了一个基于Apache Wicket的Web管理界面,解决了143个问题,提...

用 mongodb + elasticsearch 实现中文检索【代码】【图】

pip install mongo-connector $ mongo-connector --auto-commit-interval=0 -m mongo:27017 -t elasticsearch:9200 -d elastic_doc_manager auto-commit-interval 是提交延迟,0 表示即时写入,-m 和 -t 分别指定 mongo 和 elasticsearch 地址即可。需要注意的是,mongo 需要配置为 cluster 模式。配置环境用户可以自行配置 mongo 和 elasticsearch 环境,并通过 mongo-connector 连接起来。这里已经提供好了 docker-compose 模板,...

把 Elasticsearch 当数据库使:聚合后排序【代码】

EOF | ./es_query.py http://127.0.0.1:9200 SELECT ipo_year, COUNT(*) FROM symbol GROUP BY ipo_year ORDER BY ipo_year LIMIT 2 EOF {"COUNT(*)": 4, "ipo_year": 1972} {"COUNT(*)": 1, "ipo_year": 1973} Elasticsearch{"aggs": {"ipo_year": {"terms": {"field": "ipo_year", "order": [{"_term": "asc"}], "size": 2}, "aggs": {}}}, "size": 0 } 因为 ipo_year 是 GROUP BY 的字段,所以按这个排序用_term指代。{"hits"...

ElasticSearch同步MySql【代码】【图】

database test;新建一张user表mysql> create table user(id int(10) Not null,name char(10));插入几条数据.mysql> insert into test values("1","zhangsan"); mysql> insert into user values("2","LiSi"); mysql> insert into user values("3","WangWu"); mysql> insert into user values("4","MaLiu");查看所有数据:mysql> select * from user; +----+----------+ | id | name | +----+----------+ | 1 | zhangsan | | ...