Tag: elasticsearch

Elasticsearch的Liquibase或Flyway数据库迁移替代方案

我对ES很新。 我一直在尝试搜索数据库迁移工具很长时间,我找不到一个。 我想知道是否有人可以帮我指出正确的方向。 我将在项目中使用Elasticsearch作为主数据存储区。 我想对我在项目中开发新模块时运行的所有映射和配置更改/数据导入/数据升级脚本进行版本控制。 在过去,我使用了像Flyway或Liquibase这样的数据库版本控制工具。 是否有任何我可以与ES一起使用的框架/脚本或方法来实现类似的东西? 有没有人有任何使用脚本手动执行此操作的经验,并至少运行迁移脚本升级脚本。 提前致谢!

如何转义Elasticsearch的URL?

在我的Elasticsearch中的一个字段中,我存储了我的文档的URL(例如http://techcrunch.com/something-great ) 当我没有转义URL时,文档被正确找到 – 但我在某些URL上收到了EOF错误。 当我通过以下方式转义URL时: String escapedString = QueryParser.escape(e.getKey().getUrl()); 找不到该文件 – 我点击率为零。 那怎么办呢? { _index: “crawlbot”, _type: “article”, _id: “AVFaaFu4w49jUzVInKS5”, _score: 1, _source: { job: { id: 65, name: “wikipedia_en”, max_pages: 300000, crawl_depth: 0, processing_patterns: “-Category,-User,-Wikipedia:,-Topic,-Special:,-Talk:,-Portal:,-MOS”, status: 0, days: 0, url: [ “https://en.wikipedia.org” ], ajax: false, min_description: 0 }, article: { url: “https://en.wikipedia.org/w/index.php?action=history&feed=atom&title=Parliament_of_Romania”, provider_url: […]

直接自引用导致循环exception

我有类似这样的课 public abstract class ElasticSearchValue { private Long txId; private Long currentTxId; private T previous; public Long getTxId() { return txId; } public void setTxId(Long txId) { this.txId = txId; } public Long getCurrentTxId() { return currentTxId; } public void setCurrentTxId(Long currentTxId) { this.currentTxId = currentTxId; } public Object getPrevious() { return previous; } public […]

Spring-Data-Elasticsearch设置:Spring无法找到配置文件?

使用Spring-Data-Elasticsearch,我试图使用elasticsearch_config.json中定义的分析器和映射。 此JSON文件位于/ src / main / resources文件夹中。 我的JAVA模型看起来像: @Document(indexName = “test”, type=”Tweet”) @Setting(settingPath = “/elasticsearch_config.json”) public class Tweet { @Id private String idStr; /** other fields, getters and setters are omitted **/ } elasticsearch_config.json包含设置和映射: { “settings”: { /* some filters */}, “mappings”: { /* some types’ mappings*/ } } 我尝试使用curl,我没有问题索引/搜索。 我的问题 : 我想使用@Setting来配置我的映射(而不是curl),但@Setting注释似乎不起作用。 使用@Setting ,当我使用curl检查映射时,我没有得到我在elasticsearch_config.json中定义的所有映射: […]

Elasticsearch – NoNodeAvailableException

尝试使用Java API for ES 2连接到Elasticsearch 2时出现以下错误。这是代码: Settings settings = Settings.settingsBuilder().put(“cluster.name”, Receptor.clusterName).build(); TransportClient transportClient = TransportClient.builder().settings(settings).build(); Client c = null; try { c = transportClient.addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName(Receptor.es_ip), 9300)); } catch (UnknownHostException e) { System.err.println(Util.getTimestampStr() + “UnknownHostException error.”); e.printStackTrace(); } CreateIndexRequestBuilder createIndexRequestBuilder = c.admin().indices().prepareCreate(indexName); createIndexRequestBuilder.addMapping(documentName, json); createIndexRequestBuilder.execute().actionGet(); 我能够在transportClient.connectedNodes()上获取我的ES节点,但是当我尝试添加新的映射时,我得到了NoNodeAvailableExceptionexception。 此代码适用于以前版本的Elasticsearch。 什么是错的? NoNodeAvailableException[None of the configured nodes are available: []] […]

使用Apache HttpComponents Client签署AWS HTTP请求

我正在尝试向受IAM访问策略保护的AWS Elasticsearch域发出HTTP请求。 我需要签署这些请求,以便AWS授权这些请求。 我正在使用Jest ,后者又使用Apache HttpComponents Client 。 这似乎是一个常见的用例,我想知道是否有某种类型的库,我可以在Apache HttpComponents客户端上使用它来签署所有请求。

elasticsearch – 返回字段的标记

如何在结果中返回特定字段的标记 例如,A GET请求 curl -XGET ‘http://localhost:9200/twitter/tweet/1′ 回报 { “_index” : “twitter”, “_type” : “tweet”, “_id” : “1”, “_source” : { “user” : “kimchy”, “postDate” : “2009-11-15T14:12:12”, “message” : “trying out Elastic Search” } } 我想在结果中包含’_source.message’字段的标记

Elasticsearch,Max的映射类型长度很长

我的映射: POST /packtwo-order-sku-log { “settings”: { “number_of_shards”: 5, “number_of_replicas”: 1 }, “mappings”: { “baitu”: { “properties”: { “order_id”:{ “type”: “long” }, …. } } } } 当我搜索 “query”: {“term” : {“order_id” : 10160815114820888}} 要么 “query”: {“match” : {“order_id” : 10160815114820888}} 我得到了0; 但当我将order_id更改为1016081511482088 7时 ,我获得了点击率。 但是,返回的JSON ES显示: “hits”: [ { “_index”: “packtwo-order-sku-log”, “_type”: “baitu”, “_id”: “AVaMWcchVwJTsNV878q2”, […]

使用Spring-Data Elasticsearch在Elasticsearch中动态创建索引名称

我有一个用例,需要在Elasticsearch中每月创建索引。 我们的想法是在月度基础上创建指数,以便它们易于维护,并且可以在过期时删除。为此我要使用春季批次并且每月工作将创建每月基数的指数对于Elasticsearch -Java集成我使用了Spring-Data Elasticsearch实现。 我现在面临的问题是,我无法弄清楚如何使用Entity对象为索引和映射提供动态名称。 我目前的实施完成时要记住单一索引。 请找到以下用于创建索引的代码 elasticsearchTemplate.createIndex(SingleChat.class); elasticsearchTemplate.putMapping(SingleChat.class); elasticsearchTemplate.refresh(SingleChat.class, true); 而SingleChat是我的实体类 @Document(indexName=”singlemsgtemp_#{jobParameters[‘MONTH’]}”,type=”singlechat”) public class SingleChat { @org.springframework.data.annotation.Id String Id; @Field(type = FieldType.String) String conservationId; @Field(type = FieldType.String) String from; @Field(type = FieldType.String) String to; @Field(type = FieldType.String) String msgContent; @Field(type = FieldType.String) String sessionId; @Field(type = FieldType.Date, index = FieldIndex.not_analyzed, store = true, format […]

如何在我的java应用程序中嵌入elasticsearch 5.1?

使用elasticsearch 2.x,我使用以下代码启动嵌入式节点进行测试: @Bean public Node elasticSearchTestNode() { return NodeBuilder.nodeBuilder() .settings(Settings.settingsBuilder() .put(“http.enabled”, “true”) .put(“path.home”, “elasticsearch-data”) .build()) .node(); } 这不再编译。 如何在5.x中启动嵌入式节点?