Questions tagged «elasticsearch»

Elasticsearch是基于Lucene的开源(Apache 2)分布式RESTful搜索引擎。

2
ElasticSearch多级父子聚合
我有3个级别的父级/子级结构。比方说: 公司->员工->可用性 由于可用性(以及员工)在这里经常更新,因此我选择对嵌套使用父/子结构。搜索功能也可以正常工作(所有文档都位于正确的分片中)。 现在,我想对这些结果进行排序。根据公司(第一级)的元数据对它们进行排序很容易。但是我还需要按3级(可用性)进行排序。 我想要按以下方式排序的公司列表: 给定ASC到位置的距离 评分DESC 尽快供货ASC 例如: 公司A距离5英里,评级为4,并且其一名雇员最快在20小时内可用。公司B也距离5英里,也评级为4,但其一名雇员最快可以在5小时内可用。 因此排序结果必须为B,A。 我想对每个数据赋予特殊的权重,因此我开始编写聚合,以后可以在custom_score脚本中使用。 创建索引,导入数据和搜索的全部依据 现在,我设法编写了一个查询,该查询实际上返回了结果,但是可用性聚合存储桶为空。但是,我也将结果重新整理得井井有条,我想将它们弄平。 目前我回来了: 公司IDS->员工IDS->首次可用性 我想要像这样的聚合: 公司IDS->首次供货 这样,我就能执行custom_score脚本来计算分数并对其进行正确排序。 更简化的问题: 如何按多级(大)孩子进行排序/汇总并可能使结果平坦。

11
Kibana在“发现”选项卡中未显示任何结果
我设置了elasticsearch和Kibana来索引我们的应用程序(错误)日志。问题是Kibana在“发现”选项卡中不显示任何数据。 现在的情况 Elasticsearch已启动并正在运行,响应API 直接在Elasticsearch上执行查询http://elasticserver.com:9200/applogs/_search?q=*(例如)会返回很多结果(请参见下文,找到一条记录的样子) Kibana已启动并正在运行,甚至找到了applogsElasticsearch公开的索引 Kibana还会显示applogs文档的正确属性和数据类型 即使将时间段设置为几年,“发现”标签也不会显示任何结果。 有任何想法吗?? 这就是Kibana如何看待applogs索引: 弹性搜索查询结果对象如下所示: { _index: "applogs", _type: "1", _id: "AUxv8uxX6xaLDVAP5Zud", _score: 1, _source: { appUid: "esb.Idman_v4.getPerson", level: "trace", message: "WS stopwatch is at 111ms.", detail: "", url: "", user: "bla bla bla", additionalInfo: "some more info", timestamp: "2015-03-31T15:08:49" } }, ..以及我在发现标签中看到的内容:

3
刷新与刷新
如果将新文档索引到Elasticsearch索引,则可以在索引操作后1秒钟左右搜索新文档。但是,可以通过调用_flush或_refresh对索引进行操作来强制使该文档立即可搜索。这两个操作之间有什么区别-结果似乎对他们来说是相同的,可以立即搜索文档。 这些操作中的每一项到底是什么? ES文档似乎并未深入解决此问题。

5
在OSX Mavericks上安装Elasticsearch
我试图在OSX Mavericks上安装Elasticsearch 1.1.0,但是在尝试启动时出现以下错误: :> ./elasticsearch Exception in thread "main" java.lang.NoClassDefFoundError: Could not initialize class org.elasticsearch.Version at org.elasticsearch.bootstrap.Bootstrap.buildErrorMessage(Bootstrap.java:252) at org.elasticsearch.bootstrap.Bootstrap.main(Bootstrap.java:236) at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:32) 另外,当我用-v arg执行相同的命令时,我得到了这个错误: :> ./elasticsearch -v Exception in thread "main" java.lang.NoSuchFieldError: LUCENE_36 at org.elasticsearch.Version.<clinit>(Version.java:42) 这是我的环境: Java版本 >: java -version java version "1.8.0" Java(TM) SE Runtime Environment (build 1.8.0-b132) Java HotSpot(TM) …


1
elasticsearch匹配与词条查询
我使用匹配查询搜索“ request.method”:“ GET”: { "query": { "filtered": { "query": { "match": { "request.method": "GET" } }, "filter": { "bool": { "must": [ ... 正如预期的那样,Match查询可以获得结果,如下所示: 但是问题是使用Term查询时没有结果。 更新查询以将“ match”更改为“ term”,并保持其他部分不变: { "query": { "filtered": { "query": { "term": { "request.method": "GET" } }, "filter": { "bool": { "must": [ ... 我认为字词查询是Match查询的“未分析”版本。如上图所示,至少有一个记录的“ request.method”等于“ …



7
如何将数据插入Elasticsearch
我是Elasticearch的新手,并且已经尝试了2天,将一些数据插入Elasticearch。我在Google上发现有很多页面可以帮助创建索引(我不清楚“ index”,换句话说是“插入”吗?)然后很多地方给出了curl命令,但我确实没有知道在哪里执行这些代码行以插入数据。例: curl -XPOST "http://[localhost]:9200/indexname/typename/optionalUniqueId" -d '{ "field" : "value" }' 我正在使用Window 7,并且已经安装Java并成功运行elasticsearch。任何人都可以向我展示有关如何将数据插入Elasticearch的更多详细信息 非常感谢


2
Elasticsearch:如何使用python删除索引
如果这是很基本的内容,请原谅我,但是我有Python 2.7和Elasticsearch 2.1.1,我只是想使用删除索引 es.delete(index='researchtest', doc_type='test') 但这给了我 return func(*args, params=params, **kwargs) TypeError: delete() takes at least 4 arguments (4 given) 我也试过 es.delete_by_query(index='researchtest', doc_type='test',body='{"query":{"match_all":{}}}') 但我明白了 AttributeError: 'Elasticsearch' object has no attribute 'delete_by_query' 知道为什么吗?API是否已针对python 2.1.1更改? https://elasticsearch-py.readthedocs.org/en/master/api.html#elasticsearch.client.IndicesClient.delete

6
如何使用Kibana + Elastic Search检索字段的唯一计数
是否可以使用Kibana查询字段的唯一/唯一计数?我将弹性搜索用作Kibana的后端。 如果是这样,查询的语法是什么?这是我要查询的指向Kibana界面的链接:http ://demo.kibana.org/#/dashboard 我正在用logstash解析nginx访问日志,并将数据存储到弹性搜索中。然后,我使用Kibana来运行查询并使图表中的数据可视化。具体来说,我想知道使用Kibana在特定时间范围内唯一IP地址的计数。

1
elasticsearch的Query DSL中must和filter有什么区别?
我是弹性搜索的新手,在must和filter之间感到困惑。我想在我的条款之间执行and操作,所以我这样做了 开机自检/ xyz / _search { "query": { "bool": { "must": [ { "term": { "city": "city1" } }, { "term": { "saleType": "sale_type1" } } ] } } } 这给了我所需的结果,既匹配了术语,又使用了像这样的过滤器 开机自检/ xyz / _search { "query": { "bool": { "must": [ { "term": { "city": "city1" } } ], …

2
为什么在Elasticsearch中需要“存储”:“是”?
我真的不明白为什么在核心类型链接中它会在属性描述中说(例如,对于一个数字): store-设置为yes,将实际字段存储在索引中,否,则不存储它。默认为no(请注意,JSON文档本身已存储,可以从中检索) index-如果不应为该值建立索引,则设置为no。在这种情况下,应该将store设置为yes,因为如果未对它进行索引和存储,则与它无关 这两个大胆的部分似乎矛盾。如果"index":"no", "store":"no"我仍然可以从源头获得价值。例如,如果我有一个包含URL的字段,这可能是一个好用法。没有? 我做了一个小实验,在其中有两个映射,在一个域中将 "store":"yes"到"store":"no"。 在两种情况下,我仍然可以在查询中指定: {"query":{"match_all":{}}, "fields":["my_test_field"]} 我得到了相同的答案,返回了现场。 我认为,如果"store"设置为该值,"no"则意味着我无法撤退特定领域,但必须获得全部_source并在客户端进行解析。 那么,什么好处是在有设置"store"到"yes"?仅当我从"_source"字段中明确排除该字段时,才有意义吗?


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.