Tag: elasticsearch

弹性搜索java.lang.NoClassDefFoundError:org / elasticsearch / transport / Netty3Plugin

我试图通过使用java api制作基本程序来熟悉elasticsearch。 我已经研究了一段时间的答案,但我不确定我是否正在执行我发现错误的解决方案或者只是没有看到真正的问题。 我正在使用elasticsearch-5.1.1并下载了最新的传输版本(5.1.1)。 我还在我的项目结构中添加了两个(包括elasticsearch下载附带的所有jar文件)。 提前致谢! 运行我的测试文件时,我收到以下错误。 错误: java.lang.NoClassDefFoundError: org/elasticsearch/transport/Netty3Plugin at org.elasticsearch.transport.client.PreBuiltTransportClient.(PreBuiltTransportClient.java:54) at DictionarySearch.ElasticSearch.(ElasticSearch.java:41) at test.TestIndexSearcher.verifyElasticSearch(TestIndexSearcher.java:64) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:497) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268) at org.junit.runners.ParentRunner.run(ParentRunner.java:363) at org.junit.runner.JUnitCore.run(JUnitCore.java:137) at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:117) […]

Spring Data elasticsearch @Query嵌套对象的注释

我有两节课, @Document public class PracticeQuestion { private int userId; private List questions; // Getters and setters } public class Question { private int questionID; private String type; // Getters and setters } 我的JSON文档是这样的, { “_id” : ObjectId(“506d9c0ce4b005cb478c2e97”), “userId” : 1, “questions” : [ { “questionID” : 1, “type” : “optional” }, { “questionID” : 3, […]

elasticsearch top命中聚合java API查询

我正在运行以下查询,并想要检索每个桶的热门点击量。 但在少数情况下,我看到每个桶有多个文档。 我想每桶只返回一个文件。 有人可以审查查询并建议。 SearchResponse sr=client.prepareSearch(versionIndexName).setTypes(versionIndexType).setQuery(Quer yBuilders.boolQuery().must(QueryBuilders.rangeQuery(“indexDate”).lte(givenTime))) .addAggregation(AggregationBuilders.terms(“form.id”).field(“form.id”).size(0) .subAggregation(AggregationBuilders.topHits(“top”).setExplain(true).setSize(1) .setFrom((size*index)).addSort(SortBuilders.fieldSort(“indexDate”) .order(SortOrder.DESC)).setFetchSource(true))).execute().actionGet(); 查询中的步骤: 按indexDate过滤小于或等于给定日期。 基于formId的聚合。 每个formId形成桶。 按降序排序并返回每个桶的最高命中结果。

具有当前弹性搜索版本的Spring Boot应用程序

我最近尝试将elasticsearch包含在我的一个项目中。 因此,我查了不同的可能性。 它基本上归结为使用a)传输客户端(内部协议集群节点也用于通信=我的理解)或b)将其全部实现为我自己的REST HTTP调用。 因为b)看起来不是一个好的选择,而且我习惯于弹出数据,我尝试使用spring-data-elasticsearch,最近更新到版本3.0.0以支持es 5.5.0,这是最后一个很好的版本很老了。 好吧,我尝试了所有的东西,但没有设法让它与我的项目一起工作,因为这似乎是某种依赖性你会陷入其中。 我的项目太大了,我只是无法升级到spring boot 2.0.0M4,我认为这需要支持新的spring-data-elasticsearch版本 – 对吧? 那么,有人可以就当前和首选的方式提出建议吗?未来是关于如何在春季项目中处理弹性搜索? 我们真的必须自己实现整个REST API吗? 我错过了什么吗? 这是应该使用的REST客户端,如果有一个使用,对吧? 这是我知道的旧兼容性图表。 谢谢!

Elasticsearch – 使用java api删除嵌套对象无法正常工作

我有一个包含嵌套对象的elasticsearch文档,我希望能够通过java update api删除它们。 这是包含脚本的代码: UpdateRequest updateRequest = new UpdateRequest(INDEX, “thread”, String.valueOf(threadId)); updateRequest.script(“for (int i = 0; i < ctx._source.messages.size(); i++){if(ctx._source.messages[i]._message_id == " + messageId + ")" + "{ctx._source.messages.remove(i);i–;}}", ScriptService.ScriptType.INLINE); client.update(updateRequest).actionGet(); 这是我的文档的映射: { “thread_and_messages”: { “mappings”: { “thread”: { “properties”: { “messages”: { “type”: “nested”, “include_in_parent”: true, “properties”: { “message_id”: { “type”: “string” }, “message_nick”: { […]

Sonarqube后台任务永远运行

我们现在已经运行SonarQube 5.6.4了一段时间。 然后我们突然观察到后台任务的队列正在增加。 在日志中我们看到这样的消息: 2017.07.24 13:56:10 INFO [osses.BulkIndexer] 0 requests processed (0 items/sec) 每分钟一个日志条目。 然后开始的其他任务失败了: org.elasticsearch.client.transport.NoNodeAvailableException: None of the configured nodes were available: [[sonar-1498219166409][3QkGfCI8RUSn6vapRi5SSg][a2d477fdfe7a][inet[/127.0.0.1:9001] 我不知道如何找到导致错误的任何内容。 配置中没有任何变化。 我重新启动了服务器,但没有任何改变。 对我而言,值得注意的是弹性搜索似乎打开的端口数量: tcp 0 0 localhost:etlservicemgr localhost:53058 ESTABLISHED 24/java tcp 0 0 localhost:etlservicemgr localhost:53070 ESTABLISHED 24/java tcp 0 0 localhost:53058 localhost:etlservicemgr ESTABLISHED 220/java tcp 0 0 localhost:etlservicemgr localhost:52934 ESTABLISHED […]

ElasticSearch索引问题TransportSerializationException

我正在尝试索引elasticsearch中的一些文档并获得一些错误。 但我无法理解,所以我无法解决它。 以下是错误: org.elasticsearch.transport.TransportSerializationException: Failed to deserialize exception response from stream at org.elasticsearch.transport.netty.MessageChannelHandler.handlerResponseError(MessageChannelHandler.java:173) at org.elasticsearch.transport.netty.MessageChannelHandler.messageReceived(MessageChannelHandler.java:125) 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) at org.elasticsearch.common.netty.handler.codec.frame.FrameDecoder.unfoldAndFireMessageReceived(FrameDecoder.java:462) at org.elasticsearch.common.netty.handler.codec.frame.FrameDecoder.callDecode(FrameDecoder.java:443) at org.elasticsearch.common.netty.handler.codec.frame.FrameDecoder.messageReceived(FrameDecoder.java:310) 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.sendUpstream(DefaultChannelPipeline.java:559) at org.elasticsearch.common.netty.channel.Channels.fireMessageReceived(Channels.java:268) at org.elasticsearch.common.netty.channel.Channels.fireMessageReceived(Channels.java:255) at org.elasticsearch.common.netty.channel.socket.nio.NioWorker.read(NioWorker.java:88) at org.elasticsearch.common.netty.channel.socket.nio.AbstractNioWorker.process(AbstractNioWorker.java:108) at org.elasticsearch.common.netty.channel.socket.nio.AbstractNioSelector.run(AbstractNioSelector.java:318) at org.elasticsearch.common.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:89) at org.elasticsearch.common.netty.channel.socket.nio.NioWorker.run(NioWorker.java:178) at org.elasticsearch.common.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108) at org.elasticsearch.common.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) […]

使用Spring SearchQuery ElasticSearch进行每次点击的得分

我正在尝试通过SearchQuery进行搜索时查看并使用每个命中的invidual _score。 除其他事项外,这是了解我的搜索得分的范围。但除了使用searchQuery.withMinScore(float)设置MinScore之外; 我找不到任何处理搜索分数的方法。 @Override public Page listsearch(SearchBody searchBody, int size, int page) { BoolQueryBuilder qb = QueryBuilders.boolQuery(); for(SearchUnit unit:searchBody.getSearchBody()){ if(unit.isPriority()) { qb.must(matchQuery(“_all”, unit.getWord()).operator(MatchQueryBuilder.Operator.AND) .fuzziness(Fuzziness.AUTO)); }else { qb.should(termQuery(“_all”, unit.getWord()) .boost(unit.getWeight())); } } for(SearchUnit ExUnit:searchBody.getExcludeBody()){ qb.mustNot(matchPhraseQuery(“_all”,ExUnit.getWord())); } SearchQuery searchQuery = new NativeSearchQueryBuilder() .withIndices(“websites_v1”) .withTypes(“website”) .withQuery(qb) .withMinScore(0.05F)//Magical minscore .withPageable(new PageRequest(page, size)) .build(); Page search = searchRepository.search(searchQuery); return […]

将JavaPairRDD转换为JavaRDD

我使用ElasticSearch-Hadoop Library从ElsticSearch获取数据。 JavaPairRDD<String, Map> esRDD = JavaEsSpark.esRDD(sc); 现在我有了JavaPairRDD。 我想在这个RDD上使用来自MLLib的随机森林。 所以我将它转换为JavaPairRDD.toRDD(esRDD)这将给我RDD。 使用RDD我再次转换为JavaRDD JavaRDD[] splits = (JavaRDD.fromRDD(JavaPairRDD.toRDD(esRDD), esRDD.classTag())).randomSplit(new double[] { 0.5, 0.5 }); JavaRDD trainingData = splits[0]; JavaRDD testData = splits[1]; 我想将trainingData和TestData传递给Random Forest算法,但它在编译时给出了转换exception。 类型不匹配:无法从JavaRDD [Tuple2 [String,Map [String,Object]]] []转换为JavaRDD [LabeledPoint] [] 添加方括号,小于和大于符号不起作用 任何人都可以建议我正确的铸造方式。 我是Spark Datastrucutres的新手。

Jlastic的弹性搜索,Spring

有人能举例说明在jHipster或Spring-boot中使用Elasticsearch吗? 我已经使用jHipster生成了实体。 有占位符的输入:查询! /** * SEARCH /_search/samples/:query -> search for the sample corresponding * to the query. */ @RequestMapping(value = “/_search/samples/{query}”, method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE) @Timed public List search(@PathVariable String query) { return StreamSupport .stream(sampleSearchRepository.search(queryString(query)).spliterator(), false) .collect(Collectors.toList()); } 如何使用elasticsearch? 这里有一些我在生成实体中找到的脚本! 我已经尝试过放置Object , q = field:value , 弹性格式的数组,并且总是得到空数组 。 抱歉英语不好!