首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ElasticSearch:在模拟ES集群本地安装elasticsearch-mapper附件

ElasticSearch:在模拟ES集群本地安装elasticsearch-mapper附件
EN

Stack Overflow用户
提问于 2015-05-21 17:52:25
回答 2查看 722关注 0票数 1

我使用的是ElasticSearch的模拟实例,在这里创建它是“本地”的,这样我就不会在单元测试过程中或离开网络时依赖于运行的ES集群。例如:

代码语言:javascript
复制
Settings defaultSettings = ImmutableSettings
        .settingsBuilder()
        .put(ElasticSearchReservedWords.CLUSTER_NAME.getText(), "test-cluster-" + NetworkUtils.getLocalAddress().getHostName())
        .put(ElasticSearchReservedWords.PATH_DATA.getText(), new File("C:/Temp/mock_elasticsearch_cluster/data").getAbsolutePath())
        .put(ElasticSearchReservedWords.PATH_WORK.getText(), new File("C:/Temp/mock_elasticsearch_cluster/work").getAbsolutePath())
        .put(ElasticSearchReservedWords.PATH_LOG.getText(), new File("C:/Temp/mock_elasticsearch_cluster/log").getAbsolutePath())
        .put(ElasticSearchReservedWords.PATH_CONF.getText(), new File("config").getAbsolutePath())
        .put("index.store.type", "memory")
        .build();

String settingsSource = getClass().getName().replace('.', '/') + ".yml";
Settings finalSettings = settingsBuilder()
            .loadFromClasspath(settingsSource)
            .put(defaultSettings)
            .put(settings)
            .put("name", id)
            .build();
Node node = nodeBuilder()
               .settings(finalSettings)
               .build();

现在,它工作得很好,我可以索引和搜索.但是,我不知道如何安装插件。我介绍了附件类型,需要安装elasticsearch-mapper-附件插件才能工作。

有什么想法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-05-21 21:41:34

我会尝试这样做:将http://mvnrepository.com/artifact/org.elasticsearch/elasticsearch-mapper-attachments/2.5.0中的jar添加到类路径中。然后在defaultSettings中添加.put("plugin.types", org.elasticsearch.plugin.mapper.attachments.MapperAttachmentsPlugin.class.getNam‌​e())

票数 0
EN

Stack Overflow用户

发布于 2015-05-21 21:41:10

正如安德烈建议的那样,我补充说

代码语言:javascript
复制
<dependency>
    <groupId>org.elasticsearch</groupId>
    <artifactId>elasticsearch-mapper-attachments</artifactId>
    <version>2.4.3</version>
</dependency>

到我的pom文件(目前使用ElasticSearch 1.4.1 .)

当我加入

代码语言:javascript
复制
.put("plugin.types", org.elasticsearch.plugin.mapper.attachments.MapperAttachmentsPlugin.class.getNam‌​e())

它给了我错误

代码语言:javascript
复制
1) A binding to org.elasticsearch.index.mapper.attachment.RegisterAttachmentType was already configured at org.elasticsearch.plugin.mapper.attachments.AttachmentsIndexModule.configure(AttachmentsIndexModule.java:32).
  at org.elasticsearch.plugin.mapper.attachments.AttachmentsIndexModule.configure(AttachmentsIndexModule.java:32)

1 error
    at org.elasticsearch.common.inject.internal.Errors.throwCreationExceptionIfErrorsExist(Errors.java:344)
    at org.elasticsearch.common.inject.InjectorBuilder.initializeStatically(InjectorBuilder.java:151)
    at org.elasticsearch.common.inject.InjectorBuilder.build(InjectorBuilder.java:102)
    at org.elasticsearch.common.inject.InjectorImpl.createChildInjector(InjectorImpl.java:131)
    at org.elasticsearch.common.inject.ModulesBuilder.createChildInjector(ModulesBuilder.java:69)
    at org.elasticsearch.indices.InternalIndicesService.createIndex(InternalIndicesService.java:299)
    at org.elasticsearch.cluster.metadata.MetaDataCreateIndexService$2.execute(MetaDataCreateIndexService.java:382)
    at org.elasticsearch.cluster.service.InternalClusterService$UpdateTask.run(InternalClusterService.java:329)
    at org.elasticsearch.common.util.concurrent.PrioritizedEsThreadPoolExecutor$TieBreakingPrioritizedRunnable.run(PrioritizedEsThreadPoolExecutor.java:153)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:745)

所以我把它拿走了..。再次尝试运行我的junit对模拟,它工作得很好!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30380986

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档