我们有一个现有的基于 Java 的 ElasticSearch 自定义插件。我们现在升级到 ElasticSearch 2.1.1 并添加了 plugin-descriptor.properties 文件来指向我们的插件类。
之后,我们就可以安装我们的自定义插件了。但是当我们启动ElasticSearch服务时,却找不到这个自定义插件。我们验证了类文件存在于 /usr/share/elasticsearch/plugins/ 目录下。
以下是异常堆栈跟踪:
[2016-01-20 13:13:48,527][ERROR][bootstrap] Exception
ElasticsearchException[Could not find plugin class [com.symc.edp.elasticsearch.plugin.CustomEDPPlugins]]; nested: ClassNotFoundException[com.symc.edp.elasticsearch.plugin.CustomEDPPlugins];
at org.elasticsearch.plugins.PluginsService.loadPluginClass(PluginsService.java:382)
at org.elasticsearch.plugins.PluginsService.loadBundles(PluginsService.java:348)
at org.elasticsearch.plugins.PluginsService.<init>(PluginsService.java:109)
at org.elasticsearch.node.Node.<init>(Node.java:146)
at org.elasticsearch.node.Node.<init>(Node.java:128)
at org.elasticsearch.node.NodeBuilder.build(NodeBuilder.java:145)
at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:178)
at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:285)
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:35)
Caused by: java.lang.ClassNotFoundException: com.symc.edp.elasticsearch.plugin.CustomEDPPlugins
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at java.net.FactoryURLClassLoader.loadClass(URLClassLoader.java:814)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at org.elasticsearch.plugins.PluginsService.loadPluginClass(PluginsService.java:380)
... 8 more
[2016-01-20 13:22:55,236][INFO ][node ] [localhost] version[2.1.1], pid[20680], build[40e2c53/2015-12-15T13:05:55Z]
[2016-01-20 13:22:55,237][INFO ][node ] [localhost] initializing ...
[2016-01-20 13:22:55,840][ERROR][bootstrap ] Exception
ElasticsearchException[Could …Run Code Online (Sandbox Code Playgroud) 我有一个双节点 Elasticsearch 2.2.0 集群,每个节点位于不同的物理盒子上。
现在我需要安装按查询删除插件。我应该在每台机器上安装插件吗?
在使用 Elasticsearch 制作的搜索引擎中,考虑用户点击结果项目以提高具有更多用户印象的文档分数的最佳解决方案是什么?
是否有任何可以使用的工具或插件,还是应该从头开始编写?
该解决方案预计会像谷歌一样考虑以下内容:
简单的问题:我的弹性搜索引擎中有多个索引,由 postgresql 使用 logstash 镜像。ElasticSearch 在模糊搜索方面表现良好,但现在我需要在索引中使用引用,这些引用需要由查询处理。
Index A:
{
name: "alice",
_id: 5
}
...
Index B:
{
name: "bob",
_id: 3,
best_friend: 5
}
...
Run Code Online (Sandbox Code Playgroud)
我如何查询:
获取字段名称以“b”开头的索引B和名称以“a”开头的“best_friend”引用的索引A的每个匹配项
弹性搜索甚至可以做到这一点吗?
postgresql elasticsearch logstash elasticsearch-plugin logstash-configuration
我在elasticsearch上使用摄取附件处理器插件。我需要一套连接选项(indexed_chars,properties,ignore_missing等)的Java API。我怎样才能做到这一点?
我正在创建索引和设置管道,如下所示:
String id = ...
Map<String, Object> row = ...
client.prepareIndex(indexName, "my_type", id)
.setSource(row)
.setPipeline("my_pipeline")
.execute();
Run Code Online (Sandbox Code Playgroud) 我尝试按照以下问题的答案中的说明进行操作:
如何使用摄取附件插件在 Elasticsearch 5.0.0 中索引 pdf 文件?
我找不到很多 ElasticSearch 的 JavaScript 客户端示例,所以这里是我所拥有的:
创建索引
// elasticsearch Client
var elasticsearch = require('elasticsearch');
var client = new elasticsearch.Client({hosts: [ 'http://localhost:9200/']});
// Create index
client.create({index: 'pdfs', type: 'pdf', id: 'my-index-id',
body: {description: 'Test pdf indexing'}
})
.then(function () {console.log("Index created");})
.catch(function (error) {console.log(error);});
Run Code Online (Sandbox Code Playgroud)
在 Node 中定义索引映射:
var body = {
pdf:{
properties:{
title : {"type" : "keyword", "index" : "false"},
type : {"type" : "keyword", "index" : "false"},
"attachment.pdf" : {"type" : "keyword"}
} …Run Code Online (Sandbox Code Playgroud) 有任何方法可以在Elasticsearch 中获取搜索历史。在此,我想获取客户在过去一个月中搜索过的搜索查询。
我是 Elasticsearch 的新手,所以我是这样分发的:
弹性版(6.3.1)
PUT my_index/_doc/1
{
"game_name": "clash of clans"
}
GET my_index/_search
{
"query" : {
"match_phrase_prefix" : {
"game_name" : "clash"
}
}
}
Run Code Online (Sandbox Code Playgroud)
没关系,但我想要下面的代码:
GET my_index/_search
{
"query" : {
"match_phrase_prefix" : {
"game_name" : "lash"
//--OR
"game_name : "klash"
//--OR
"game_name : "clsh"
}
}
}
Run Code Online (Sandbox Code Playgroud)
没有结果,你能指出我如何解决这个问题吗?
感谢致敬!
elasticsearch elasticsearch-plugin spring-data-elasticsearch
我需要通过 URI 创建一个查询来过滤两个日期之间的所有数据,以及这个日期字段是否为空。
例如:我在某些对象中有字段“creation_date”,但是我希望在结果中也不会出现该字段没有的对象。
我在下面尝试了类似的东西:
http://localhost//elasticsearch/channels/channel/_search?q=channel.schedule.creation_date:[2018-06-19 TO 2018-12-22] OR channel.schedule.creation_date: NULL
Run Code Online (Sandbox Code Playgroud)
只要比较日期没问题,它就可以工作。问题是获取 NULL 值。
编辑 源示例:
"_source": {
"channel": {
"activated": false,
"approved": false,
"content": "Jvjv",
"creation_date": "2018-06-21T13:06:10.000Z",
"facebookLink": "J jv",
"id": "Kvjvjv",
"instagramId": "Jvjv",
"name": "Kbkbkvk",
"ownerId": "sZtxdhiNbNY9sr2DtiCzlgJfsqb2",
"plan": 0,
"purpose": "Jvjv",
"recurrence": 1,
"segment": "Jvjvjv",
"twitterId": "Jvjv",
"youtubeId": "Jvj"
}
}
}
Run Code Online (Sandbox Code Playgroud) 我想替换所有我的Elasticsearch索引文档中的单个用户名。是否有API查询?
我尝试搜索多个,但找不到。有人知道吗?
我的情况:
curl -XPOST 'http://localhost:9200/test/movies/' -d '{"user":"mad", "role":"tester"}'
curl -XPOST 'http://localhost:9200/test/movies/' -d '{"user":"bob", "role":"engineer"}'
curl -XPOST 'http://localhost:9200/test/movies/' -d '{"user":"cat", "role":"engineer"}'
curl -XPOST 'http://localhost:9200/test/movies/' -d '{"user":"bob", "role":"doctor"}'Run Code Online (Sandbox Code Playgroud)
我在名为“ test”的索引中具有上述数据,并键入“ movies”。在这里,我想用“ alice”代替所有的“ bob”名称。
谢谢
elasticsearch ×10
java ×2
base64 ×1
javascript ×1
logstash ×1
lucene ×1
pdf ×1
php ×1
postgresql ×1