假设我有一个在映射中指定为not_analyzed的string字段。 如果我然后添加"store":"yes"的映射,ElasticSearch会复制存储? 我对not_analyzed字段的理解是,它们不是通过分析器运行的, 按原样编制索引,但是客户端能够匹配它。 所以,如果一个字段是不not_analyzed和store:yes ,这可能会导致ElasticSearch保留string的两个副本。 我的问题: 如果一个string字段被存储为not_analyzed和store:yes ,会有重复存储的string? 我希望这是很清楚的。 谢谢!
我正在尝试用Elasticsearch取代Solr设置。 这是一个新的设置,还没有看到生产,所以我有很多空间摆弄东西,让他们工作得很好。 我有非常非常大量的数据。 我将一些实时数据编入索引并保存7天(使用_ttl字段)。 我不在索引中存储任何数据(并禁用_source字段)。 我预计我的指数将稳定在200亿左右。 我将把这些数据放入2-3个命名索引中。 到目前为止search性能高达几十亿行是完全可以接受的,但是索引性能是一个问题。 我对ES如何在内部使用分片有点困惑。 我创build了两个ES节点,每个节点都有一个单独的数据目录,每个目录有8个索引和1个副本。 当我查看群集状态时,我只能看到每个节点有一个分片和一个副本。 不是每个节点都保持多个内部运行的索引吗? (检查磁盘上的存储位置显示肯定只有一个Lucene索引存在)。 – 解决了,因为我的索引设置没有从configuration中正确拾取。 现在使用API创build索引并指定碎片和副本的数量,现在已经完全产生了我期望看到的结果。 另外,我尝试运行相同ES节点的多个副本(来自相同的configuration),并且它确认已经有一个副本运行并创build了自己的工作区域。 这些新的节点实例似乎也只有一个磁盘索引。 – 现在每个节点实际上使用多个索引,具有多个索引的单个节点已经足够扼杀整个系统,所以这不是问题。 何时启动额外的Elasticsearch节点,以获得最大的索引性能? 我是否应该有多个节点,每个节点运行1个索引1个副本,或者更less的节点有大量的索引? 有没有我的configuration丢失,为了让单个节点做更多的工作? 另外:是否有任何度量值知道什么时候只有HTTP的节点过载? 现在我有一个节点专门用于HTTP,但除了CPU使用率,我不知道它是否行得通。 什么时候启动额外的HTTP节点,并将索引软件拆分为指向不同的节点?
在我的系统中,数据的插入总是通过logstash通过csv文件完成的。 我从来没有预先定义映射。 但是每当我input一个string时,总是需要进行analyzed ,结果就像是hello I am Sinha , I分裂成了hello , Sinha 。 是否有反正我可以改变弹性search的默认/dynamic映射,使所有的string,而不论索引,不论types,都不被not analyzed ? 或者有没有办法在.conf文件中设置它? 说我的conf文件看起来像 input { file { path => "/home/sagnik/work/logstash-1.4.2/bin/promosms_dec15.csv" type => "promosms_dec15" start_position => "beginning" sincedb_path => "/dev/null" } } filter { csv { columns => ["Comm_Plan","Queue_Booking","Order_Reference","Multi_Ordertype"] separator => "," } ruby { code => "event['Generation_Date'] = Date.parse(event['Generation_Date']);" } } […]
我如何创buildElasticsearchcurl查询来获得非空和非空的字段值(“”), 这里是mysql的查询: select field1 from mytable where field1!=null and field1!="";
从v2.0开始,Elasticsearch默认只在本地主机上侦听,但是我想在本地主机之外发出请求。 例如,这样的请求是允许的: http://localhost:9200/ 但是这不是: http://server_name:9200/ (来自服务器外部,例如:同一局域网中的本地计算机)。 谢谢你的帮助。
从ElasticSearch获得某个索引的所有_ids的最快方法是什么? 有可能通过使用简单的查询吗? 我的一个索引有大约20000个文件。
当我尝试使用curl http://localhost:9200连接到Elastic Search时,它工作正常。 但是,当我运行curl http://IpAddress:9200它是抛出一个错误,说connection refused port 9200 。 如何解决这个错误?
我一直在阅读大量有关如何在JavaScript或PHP网站上实现弹性search的文档。 很好的ES介绍 。 非常完整的文档在这里和这里 。 整个CRUD 。 用PHP弹性search: 在这里 , 在这里 , 在这里 。 所以我给你这些URL的原因是要理解如何在使用预先存在的SQL DB时使用其中的一个或多个文档。 我在某处丢失了一点:正如他们所说的,Elasticsearch将使用MongoDB创build自己的索引和数据库,我不明白如何使用我的(巨大的)使用SQL的数据库? 假设我有一个MySQL数据库,我想用Elasticsearch使我的研究更快,并提出用户预先提出的查询,我该怎么做? ES如何在MySQL上工作? 如何将这个巨大的数据集(超过8GB)转换成ES数据库,以便在开始时实现高效率? 非常感谢
我目前正在尝试将基于solr的应用程序迁移到elasticsearch。 我有这个lucene查询 (( name:(+foo +bar) OR info:(+foo +bar) )) AND state:(1) AND (has_image:(0) OR has_image:(1)^100) 据我所知,这是MUST子句与布尔OR组合的组合: “获取包含(foo和bar的所有文档)或(foo和bar的信息)的所有文档,然后在条件状态= 1的情况下生成filter,并提升具有图像的文档。 我一直试图使用布尔查询必须,但我没有得到布尔OR或必须从句。 这是我有什么: GET /test/object/_search { "from": 0, "size": 20, "sort": { "_score": "desc" }, "query": { "bool": { "must": [ { "match": { "name": "foo" } }, { "match": { "name": "bar" } } ], "must_not": [], […]
我在我的应用程序中使用单个传输客户端实例查询多个并行请求的elasticsearch。 我得到了以下的并行执行exception。 如何解决这个问题。 org.elasticsearch.common.util.concurrent.EsRejectedExecutionException: rejected execution (queue capacity 1000) on org.elasticsearch.search.action.SearchServiceTransportAction$23@5f804c60 at org.elasticsearch.common.util.concurrent.EsAbortPolicy.rejectedExecution(EsAbortPolicy.java:62) at java.util.concurrent.ThreadPoolExecutor.reject(ThreadPoolExecutor.java:821) at java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:1372) at org.elasticsearch.search.action.SearchServiceTransportAction.execute(SearchServiceTransportAction.java:509) at org.elasticsearch.search.action.SearchServiceTransportAction.sendExecuteScan(SearchServiceTransportAction.java:441) at org.elasticsearch.action.search.type.TransportSearchScanAction$AsyncAction.sendExecuteFirstPhase(TransportSearchScanAction.java:68) at org.elasticsearch.action.search.type.TransportSearchTypeAction$BaseAsyncAction.performFirstPhase(TransportSearchTypeAction.java:171) at org.elasticsearch.action.search.type.TransportSearchTypeAction$BaseAsyncAction.start(TransportSearchTypeAction.java:153) at org.elasticsearch.action.search.type.TransportSearchScanAction.doExecute(TransportSearchScanAction.java:52) at org.elasticsearch.action.search.type.TransportSearchScanAction.doExecute(TransportSearchScanAction.java:42) at org.elasticsearch.action.support.TransportAction.execute(TransportAction.java:63) at org.elasticsearch.action.search.TransportSearchAction.doExecute(TransportSearchAction.java:107) at org.elasticsearch.action.search.TransportSearchAction.doExecute(TransportSearchAction.java:43) at org.elasticsearch.action.support.TransportAction.execute(TransportAction.java:63) at org.elasticsearch.action.search.TransportSearchAction$TransportHandler.messageReceived(TransportSearchAction.java:124) at org.elasticsearch.action.search.TransportSearchAction$TransportHandler.messageReceived(TransportSearchAction.java:113) at org.elasticsearch.transport.netty.MessageChannelHandler.handleRequest(MessageChannelHandler.java:212) at org.elasticsearch.transport.netty.MessageChannelHandler.messageReceived(MessageChannelHandler.java:109) at org.elasticsearch.common.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:70) at org.elasticsearch.common.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564) at org.elasticsearch.common.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:791) at org.elasticsearch.common.netty.channel.Channels.fireMessageReceived(Channels.java:296) […]