草庐IT

ElasticSearch-IK

全部标签

php - Elasticsearch 查询 - 带空格的短语

您好,我正在尝试让查询工作,但我不明白如何让它工作我想像这样搜索所有匹配的词$term=+phrase+phrase+phrase但是如果短语中有空格,我如何将短语作为一个整体进行匹配,而不是将单词分成单独的搜索项?"query":{"query_string":{"query":"'.$term.'"}} 最佳答案 您是否尝试过+“这是我的短语”+“另一个”之类的东西?另请参阅短语查询(在匹配查询文档中):http://www.elastic.co/guide/en/elasticsearch/reference/current/

php - 在 Elasticsearch 中将整个字符串与破折号匹配

我有一个elasticsearch查询,我试图正确匹配,字段数据本身包含-(破折号),字符串数据是GUIDS它没有正确匹配,因为它将术语拆分为由-拆分的单独单词我已将查询更改为使用这样的match_phrase查询:"query":{"filtered":{"query":{"match_phrase":{"guid":{"operator":"or","query":"bd2acb42-cf01-11e2-ba92-12313916f4be"}}}}}当我试图只匹配一个GUID时,这工作得很好。但是我试图匹配多个GUID所以现在看起来像"query":{"filtered":{"qu

php - 如何使用 PHP 更新/替换 ElasticSearch 文档中的字段?

我想更新我的Elasticsearch索引文档的字段。在我的例子中,它是标签字段。这是我目前拥有的代码://Indextagsinthepagedocument$es_client->update(['index'=>'myappname','type'=>'page','id'=>$page_id,'body'=>['doc'=>['tags'=>$tagsArray]]]);因此,这将通过向其添加标签数组来更新我的文档,但不会删除旧标签。如何确保在添加新标签时删除旧标签?我确实查看了文档,但众所周知,Elasticsearch文档可能非常困惑且无处不在。因此,经过几天的搜索,我在这

Elasticsearch(七)--ES文档的操作(下)---删除文档

一、前言上篇文章我们了解了ES的修改文档的操作,也同样分别通过ES的kibana客户端以及Java高级Rest客户端进行学习,那么本篇末尾要给大家介绍的是对文档的删除操作,同新修改文档,也有删除单条文档和批量删除文档操作,根据条件删除文档,我们本篇均会涉及到。二、删除文档2.1、删除单条文档在ES中删除文档的请求的类型是DELETE,其请求的形式如下:DELETE/${index_name}/_doc/${_id}上面的_id就是将要删除的ES文档的_id。执行下面的删除命令:DELETE/hotel/_doc/021返回的结果如下:通过结果可知,已经成功删除文档,之前添加的文档已经不存在了。

php - ElasticSearch 查询卡在 laravel 作业队列中

我目前正在使用laravel-elasticsearch我的ES查询的提供者。我在我的laravel队列(使用beanstalkd)处理的作业中使用它。我遇到的问题是,在长时间运行的作业中,最终我无法再将数据插入到elasticsearch中。工作只是挂起(没有抛出异常)我已经将它缩小到我进行ES调用的代码。我的连接是否有可能变得陈旧而不重新连接?我的另一个想法是它与使用Facade和它是一个单例有关。这是我正在做的,这不是我的确切代码。但是当它没有在长时间运行的作业中运行时,代码工作得很好。我只是想提供一些上下文。它插入得很好,在长时间运行的过程之后运行之前,代码运行没有问题。更新:

java - _version、_id 等的 spring-data-elasticsearch 元数据注释

使用@Id注释我可以添加id字段到我的模型对象,当我执行查询时,生成的模型对象将包含elasticsearch_id的值在@Id带注释的字段。但是,我还没有弄清楚如何获取其他文档元数据,例如_version.我尝试添加version字段到我的模型并用@Version注释它注释但什么也没发生,该字段仍然存在null.{"_index":"twitter","_type":"tweet","_id":"1","_version":1,"found":true,"_source":{"user":"kimchy","postDate":"2009-11-15T14:12:12","messa

java - Elasticsearch NoNodeAvailableException 配置的节点均不可用

Settingssettings=Settings.settingsBuilder().put("cluster.name","logging_elasticsearch").build();TransportClientclient=TransportClient.builder().settings(settings).build().addTransportAddress(newInetSocketTransportAddress(InetAddress.getByAddress(newbyte[]{10,100,30,62}),9300));SearchResponseresp

java - 使用 JEST 客户端在 ElasticSearch 中的节点之间切换

我的ElasticSearch集群中有3个节点。例如。10.10.0.1、10.10.0.2、10.10.0.3现在我正在尝试使用Jest客户端API连接到集群并提供上述节点之一的IP(10.10.0.1)。现在,如果节点(10.10.0.1)已关闭,是否意味着我无法访问集群?如何处理这种我们有多个节点并尝试使用一个IP地址从代码连接到集群的问题?或者我应该去创建其他连接并提供另一个IP地址吗?我觉得这是一种非常粗略的做法,因为如果我们有100个节点,在那种情况下我们最终会尝试一个接一个地连接到100个节点。 最佳答案 我会看看在所

java - Elasticsearch java 验证 api

我想在保存查询以备后用之前验证查询。我看到ES有一个validateAPI但它看不到将它与Javaapi一起使用的方法。有没有办法使用javaapi验证ES查询?也许我可以在保存之前运行查询? 最佳答案 所以在查看了Elasticsearch源代码之后,我想到了这个解决方案。publicActionFuturevalidateAsync(QueryBuilderquery,String[]indices){finalValidateQueryRequestrequest=newValidateQueryRequest();reque

spring - 在 java 中使用 elasticSearch 2.3.3 按索引名称和类型删除索引

我在java中有一个项目,我使用Elasticsearch2.3.3为数据编制索引。索引有两种类型。我的索引文档如下所示:{"took":10,"timed_out":false,"_shards":{"total":1,"successful":1,"failed":0},"hits":{"total":3,"max_score":1,"hits":[{"_index":"test_index","_type":"movies","_id":"uReb0g9KSLKS18sTATdr3A","_score":1,"_source":{"genre":"Thriller"}},{"_i