【Elasticsearch的PHP的API使用(一)】教程文章相关的互联网学习教程文章

phper敲开java的大门-Elasticsearch搜索引擎

本文目标 了解Elasticsearch,并简单的运用到springboot项目中。 本次主角 Elasticsearch(开源,分布式,RESTful搜索引擎) github地址(https://github.com/elastic/elasticsearch) 初识Elasticsearch 笔者早期参与的php项目并没有涉及到搜索方面,就算有也是比较简单的使用一下 like 语句来实现搜索功能。 Elasticsearch这个名词倒是早有耳闻,不过当时一来业务场景用不到,二来它在java领域的使用更广泛,直到后来需要做用户行为...

php-通过输入数组的顺序从elasticsearch检索信息【代码】

似乎无法找到我的疑问的答案,因此我决定发布问题,看看是否有人可以帮助我. 在我的应用程序中,我有一个ID数组,这些ID来自后端,并且已经根据需要进行了排序,例如:[0] => 23,[1] => 12,[2] => 45,[3] => 21 然后,我使用条件过滤器“询问”弹性搜索与该数组中存在的每个id对应的信息.问题是结果没有按照我发送的ID的顺序排列,因此结果变得混乱,例如:[0] => 21,[1] => 45,[2] => 23,[3] => 12 请注意,我无法通过对后端中的数组进行排序...

php-如何使分页elasticsearch?【代码】

我是Elasticsearch的新手. 我尝试制作真正的应用程序.我正在使用elasticsearch-phphttps://github.com/elastic/elasticsearch-php 我不知道要分页. 我的代码:<?php require_once 'app/init.php';if(isset ($_GET['q'])) {$q = $_GET['q'];$query = $es->search(['index' => 'user','type' => 'profile','body' => ['query' => ['bool' => ['should' => ['match' => ['bio' => $q]]]] ]]);if ($query['hits']['total'] >=1) {$resu...

ElasticSearch匹配查询多个术语PHP【代码】

我试图构造必须查询多个术语,数组看起来像这样:$params = [ 'body' => ['query' => ["bool" => ["must" => ["terms" => ["categories" => ["Seating",],],"terms" => ["attributes.Color" => ["Black",],]],"filter" => ["range" => ["price" => ["gte" => 39,"lte" => 2999,],],],],],'from' => 0,'size' => 3, ], ];JSON表示如下:{ "query": {"bool": {"must": {"terms": {"attributes.Color": ["Black"]}},"filter": {"range"...

PHP-Elasticsearch滚动扫描查询未返回所有文档,缺少第一组文档【代码】

我正在尝试滚动我的ES索引并获取所有文档,但看起来好像一直缺少初始滚动返回的第一组文档.例如,如果我的滚动大小为10,并且滚动后查询返回的总数为100,那么我将只有90个文档.关于我所缺少的任何建议吗? 这是我目前尝试过的方法:$json = '{"query":{"bool":{"must":[{"match_all":{}}]}}}';$params = ["scroll" => "1m","size" => 50,"index" => "myindex","type" => "mytype","body" => $json ];$results = $client->search($par...

php-在Elasticsearch和Symfony2中使用日期范围【代码】

我在基于Doctrine的实体类中有一个标准的Datetime字段:/*** @ORM\Column(type="datetime")*/ private $occurring;这将生成一个DateTime对象,并按预期方式工作.但是,当此对象与FOSElasticaBundle集成在一起时,就会出现问题.由于DateTime对象不支持__toString()方法,因此我不得不使用这些属性来重构Elastica配置,以便populate命令可以运行:mappings:id: ~occurring:properties:date: { type: date, format: "yyyy-MM-dd" }这会正确...

php-在elasticsearch示例中建立索引?【代码】

我读了tutorial关于在Elasticsearch中建立文档索引.有批量索引的示例.我有一个问题,在循环中为一个项目用两个键创建数组时是否正确:for($i = 0; $i < 100; $i++) {$params['body'][] = array('index' => array('_id' => $i));$params['body'][] = array('my_field' => 'my_value','second_field' => 'some more values'); }为什么循环中会有数组$params [‘body’] []的两个初始化?必须使用与my_field相同的键进行索引设置吗? 我...

ElasticSearch并在PHP中搜索多个字段【代码】

我使用的是最新版本的elasticsearch-php以及最新版本的MongoDB和ElasticSearch. 我需要在可以包含一个或多个值的多个字段上进行搜索.例: country_code应该是NL,BE或DE和类别应包含AA01,BB01,CC02或ZZ11 我以为我会按照以下方式解决它(PHP):$countries = array(“NL”, “BE”, “DE”); $category = array(“AA01”, “BB01”, “CC02”, “ZZ11”);$searchParams['body']['query']['bool']['must']['terms']['country'] = $coun...

php中的Elasticsearch聚合【代码】

我正在编写Elasticsearch聚合查询以查找可用的总数:GET zap/_search{"aggregations": {"Brand_Name_Count": {"terms": {"field": "brand_name", "size" : 0}},"Stock_Status_Count" : {"terms" : { "field" : "stock_status", "size" : 50}},"Category_Id_Count" : {"terms" : { "field" : "category_id", "size" : 50}}}}我正在得到正确的计数.我如何在PHP代码中编写这些类型的查询?由于我是弹性搜索的新手,任何帮助都会有所帮助...

php – 如何找到在elasticsearch中找到的结果的子类型?【代码】

大家好,提前谢谢, 我以下列方式在elasticsearch服务器上索引数据{'main_index':{'type':[{'name':'john deo','type':'accountant','description':'john deo is a great person','address':'somewhere in the world'},{'name':'calvin kalvin','type':'designer','description':'calvin kalvin is john deo's best friend','address':'somewhere near'}]} }我的查询是,当我搜索伟大的人时,它也应该返回它的子类型,例如名称或类型或描...

如何使用PHP更新/替换ElasticSearch文档中的字段?【代码】

我想更新我的Elasticsearch索引文档的字段.就我而言,它是标签字段.这是我目前的代码:// Index tags in the page document$es_client->update(['index' => 'myappname','type' => 'page','id' => $page_id,'body' => ['doc' => ['tags' => $tagsArray]]]);因此,这将通过向其添加tags数组来更新我的文档,但它不会删除旧标记.如何在添加新标签时确保删除旧标签? 我确实查看了文档,但是众所周知,Elast...

php – Elasticsearch – 我需要JDBC驱动程序吗?【代码】

目标 将我的elasticsearch服务器与SQL数据库中的新数据和过期数据同步 问题 我可以通过两种截然不同的方式实现这一目标,但我不知道哪种更好.我可以使用JDBC river插件直接连接到SQL数据库,将信息提取到elasticsearch.或者,我可以使用PHP客户端使用下面显示的代码将数据推送到elasticsearch:// The Id of the document $id = 1;// Create a document $tweet = array('id' => $id,'user' => array('name' => 'mewantco...

php – ElasticSearch查询在laravel作业队列中挂起【代码】

我目前正在使用laravel-elasticsearch提供程序进行ES查询.我在我的laravel队列(使用beanstalkd)处理的作业中使用它.我遇到的问题是,在长时间运行的作业中,最终我无法再将数据插入到elasticsearch中.工作刚刚挂起(没有异常被抛出)我已经缩小到我正在进行ES调用的代码.我的连接是否可能变得陈旧,如何重新连接?我的另一个想法是它与使用Facade有关,它是一个单身人士. 这是我正在做的,这不是我的确切代码.但是当代码没有在长时间运行的...

在Windows Xampp上安装和使用elasticsearch php客户端

我从https://www.elastic.co/downloads/elasticsearch下载了elasticsearch-5.1.1.zip 然后使用以下命令通过composer下载用于Elasticsearch的Elastica A PHP客户端composer require ruflin/elastica:dev-master现在我要打开并进行测试.当我运行此命令bin\elasticsearch.bat我收到此错误:命令的语法不正确. 另一方面,如果我尝试使用Elastica A PHP客户端,则会出现如下错误:Fatal error: Uncaught Elastica\Exception\Connection\Ht...