Tag: elasticsearch

显示所有Elasticsearch聚合结果/桶而不仅仅是10个

我试图列出一个聚合的所有桶,但它似乎只显示前10名。 我的search: curl -XPOST "http://localhost:9200/imoveis/_search?pretty=1" -d' { "size": 0, "aggregations": { "bairro_count": { "terms": { "field": "bairro.raw" } } } }' 返回: { "took" : 2, "timed_out" : false, "_shards" : { "total" : 5, "successful" : 5, "failed" : 0 }, "hits" : { "total" : 16920, "max_score" : 0.0, "hits" : [ ] […]

Elasticsearch vs Cassandra与Elasticsearch与Cassandra

我正在学习NoSQL,并根据我的客户的要求寻找不同的选项。 在提出这个问题之前,我已经经历了各种资源(一个在NoSQL知识匮乏的人) 我需要以更快的速度存储数据并读取数据。 完全失效保护,易于扩展。 能够searchGoogle Analytics的数据。 我结束了一个简短的列表: Cassandra and Elasticsearch 我所理解的是Cassandra是一个完美的NoSQL存储解决scheme,因为我可以使用索引写入数据和读取数据。 分析失败或可能失败。 未来,如果我想从from_date to to_date数据,或更多的方式获取数据的分析,如果我没有正确地devise数据模型或保持长远的眼光,这可能是在不断变化的世界很难。 虽然Elastic Search是最好的索引(由Lucene支持),并可以随机search数据通过抛出一些随机文本。 但是,即使我想检索数据from_date to to_date (我希望它可能),它的工作原理是否相同。 但真正的问题是,它是一个search引擎,还是像Cassandra一样完美的NoSQL数据存储? 如果是的话,为什么我们仍然需要卡桑德拉? 如果这两者都在不同的世界,请解释一下! 我们如何将它们结合起来以获得更有效的解决scheme?

如何使用Logstash处理多个异构input?

假设您有两种非常不同的日志types,例如技术和业务日志,您需要: 原始的技术日志使用gelf输出路由到一个graylog2服务器, 使用专用的elasticsearch_http输出将json业务日志存储到elasticsearch集群中。 我知道以Syslog-NG为例,configuration文件允许定义几个不同的input,然后可以在分派之前单独处理; Logstash似乎无法做到。 即使一个实例可以使用两个特定的configuration文件启动,所有日志都采用相同的通道并且正在应用相同的处理。 我应该运行尽可能多的实例,因为我有不同types的日志?

ElasticSearch多层次的父子聚合

我有一个3级的父母/孩子结构。 我们说: 公司 – >员工 – >可用性 由于可用性(也是员工)在这里经常更新,我select使用父/子结构对嵌套。 而searchfunction正常工作(所有文件在正确的碎片)。 现在我想sorting这些结果。 通过来自公司(第一级)的元数据进行sorting非常简单。 但是我还需要按第三级(可用性)进行sorting。 我想要按以下sorting的公司列表: 距离ASC的位置 评级DESC 最快的可用性ASC 例如: A公司距离5英里,评级为4,最快的员工在20小时内可用,B公司也在5英里以外,也有4个等级,但最快的员工在5个小时内可用。 所以sorting结果需要是B,A 我想为每个数据添加特殊的权重,所以我开始编写可以在我的custom_score脚本中使用的聚合。 完整的要点,用于创build索引,导入数据和search 现在,我设法写了一个实际返回结果的查询,但可用性聚合桶是空的。 但是,我也得到的结​​果太结构化,我想扁平化他们。 目前我回来了: 公司IDS – >员工IDS – >第一个可用性 我想要聚合像: 公司IDS – >第一可用性 这样我就可以做我的custom_score脚本来计算分数并正确地sorting它们。 更简化的问题: 如何sorting/聚合多层次(盛大)的孩子,并可能使结果变平。

弹性search:如何查看索引数据

我在ElasticSearch和Rails中遇到了一些问题,其中一些数据由于attr_protected而没有正确索引。 Elastic Search存储索引数据的位置? 检查实际索引的数据是否有误是很有用的。 使用Tire.index('models').mapping检查Tire.index('models').mapping不会有帮助,该字段将被列出。

elasticsearch与MongoDB进行过滤应用

这个问题是关于在深入研究实验和实现细节之前作出架构select。 关于弹性search与MongoDB的可伸缩性和性能方面的适用性,有一些具体的目的。 假设都存储具有字段和值的数据对象,并允许查询该对象的主体。 所以大概根据选定的字段筛选出对象的子集,是适合这两者的。 我的应用程序将围绕根据标准select对象。 它将通过同时过滤多个字段来select对象,换句话说,其查询过滤标准通常包含1到5个字段之间的任何地方,在某些情况下可能更多。 而select作为filter的字段将是更大量的字段的子集。 图片中存在大约20个字段名称,每个查询是试图通过整个20个字段中的几个字段来过滤对象(可以less于或多于20个总字段名称存在,我只是用这个数字来表示比例字段到用作每个离散查询中的filter的字段)。 过滤可以通过所选字段的存在以及字段值来实现,例如过滤掉具有字段A的对象,并且字段B在x和y之间,并且字段C等于w。 我的应用程序将会不断地进行这种过滤,而在任何时候哪个字段用于过滤将没有什么或者很less。 也许在弹性search中需要定义索引,但是甚至可能没有索引,速度与MongoDB相当。 根据进入商店的数据,没有任何特别的细节..插入后对象几乎不会被改变。 也许旧的对象将需要被删除,我想假设两个数据存储支持到期删除东西在内部或由应用程序进行查询。 (不太经常,适合某个查询的对象也需要被删除)。 你怎么看? 而且,你有没有尝试过这方面? 我对这两个数据存储库中的每一个的性能和可扩展性感兴趣。 这是一个build筑devise的问题,应该使其架构良好的商店特定的选项或查询基础的详细信息,作为一个充分思考的build议的示范。 谢谢!

使用python向RESTful API发出请求

我有一个RESTful API,使用EC2实例上的Elasticsearch实现来公开一个内容语料库。 我可以通过从我的terminal(MacOSX)运行以下命令来查询search: curl -XGET 'http://ES_search_demo.com/document/record/_search?pretty=true' -d '{ "query": { "bool": { "must": [ { "text": { "record.document": "SOME_JOURNAL" } }, { "text": { "record.articleTitle": "farmers" } } ], "must_not": [], "should": [] } }, "from": 0, "size": 50, "sort": [], "facets": {} }' 如何使用python/requests或python/urllib2 (不知道哪一个去 – 使用urllib2,但是听到请求更好…),将上面的代码变成API请求? 作为标题或其他方式传递吗?

从索引/types中删除所有文档而不删除types

我知道可以通过deleteByQuery删除某个types的所有文档。 例: curl -XDELETE 'http://localhost:9200/twitter/tweet/_query' -d '{ "query" : { "term" : { "user" : "kimchy" } } }' 但我没有任何条款,只是想删除该types的所有文件,无论是什么条款。 达到这个目标的最佳实践是什么? 空的术语不起作用。 链接到deleteByQuery

ElasticSearch:未分配的碎片,如何解决?

我有一个ES节点有4个节点: number_of_replicas: 1 search01 – master: false, data: false search02 – master: true, data: true search03 – master: false, data: true search04 – master: false, data: true 我不得不重新启动search03,当它回来,它重新join群集没有问题,但剩下7个未分配的碎片铺设。 { "cluster_name" : "tweedle", "status" : "yellow", "timed_out" : false, "number_of_nodes" : 4, "number_of_data_nodes" : 3, "active_primary_shards" : 15, "active_shards" : 23, "relocating_shards" : 0, "initializing_shards" : […]

弹性search,多个索引与一个索引和不同数据集的types?

我有一个使用MVC模式开发的应用程序,我想现在索引它的多个模型,这意味着每个模型有不同的数据结构。 使用多重索引更好吗,每个模型使用多个索引,还是每个模型的索引都有相同的types? 这两种方式也需要一个不同的search查询,我认为。 我刚开始这个 如果数据集很小或很大,那么这两个概念之间在性能上会有差异吗? 如果有人可以为我推荐一些好的样本数据,我会自己testing第二个问题。