Articles of elasticsearch

如何在不使用Base64的情况下在ElasticSearch中索引二进制文件

我正在使用NodeJS elasticsearch包与ElasticSearch进行交互。 我有一个文件有一个file字段。 我想能够上传一个文件到索引,但唯一的办法,我发现是通过使用elasticsearch-mapper-attachment插件。 问题是,如果我使用它,我必须加载整个文件在内存中,编码到Base64,然后将string传递给ElasticSearch。 我希望能够传递stream到ElasticSearch(引用任何二进制文件:pdf,xls,doc,ppt)。

putMapping elasticsearch索引找不到exception

我只是试图使用putMapping创build一个索引,并相当肯定这是一个语法问题。 弹性客户端正在为.index和.search命令工作,所以我不相信它的设置是问题。 相反,它是我的putmapping代码的东西。 任何build议将不胜感激。 我想要做什么的一点描述。 我search了一个索引,发现它不存在。 我发现错误并testing它是否等于“index_not_found_exception”。 如果是这样,我需要创build索引。 “…”下面的所有内容都在.catch中。 "use strict"; let config = require("./config"), soap = require("soap"), elastic = require("elasticsearch").Client(config.routeHost); … if (error.body.error.type == "index_not_found_exception") { console.log("no index"); elastic.indices.putMapping({ index: "ppvevents", type: "ppvObject", body: { properties: { name: {type: "string", index: "not_analyzed"}, hdid: {type: "integer"}, sdid: {type: "integer"} } } }).then(function(response){ console.log("Response: ", response); […]

当字段未定义或从对象丢失时从elasticsearch获取数据

我试图从弹性search中获取数据,通过查询指示对象是否已被处理的字段。 让我们把它叫做'isHandled'。 有一些没有这个字段索引的对象。 有没有办法得到“isHandled”只是不是“真”(假或甚至失踪)的数据? 谢谢

Elasticsearch映射

如何改变弹性search现有索引中的映射? 我需要设置geo_pointtypes的位置types。 { "stations": { "mappings": { "station": { "properties": { "address": { "type": "string" }, "district": { "type": "string" }, "location": { "properties": { "lat": { "type": "double" }, "lon": { "type": "double" } } }, "name": { "type": "string" } } } } } }

弹性search索引模板的创build

我对弹性search很新,在我使用弹性search的节点程序中。 在这个我试图创build一个"Index Template"但我收到错误: 查询: client.indices.putTemplate({ "name":"mfi1", "template" : "te*" }).then(function(res){ console.log(res); }, function(error){ console.log(error); }); 但是我收到错误: { "error": "ElasticsearchParseException[Failed to derive xcontent from org.elasticsearch.common.bytes.BytesArray@1]", "status": 400 } 帮我解决这个问题。

在nodejs中使用elasticsearch获取基于属性值的文档

我正在使用Elasticsearch,我是这个技术的新手。我不知道如何使用nodej来search弹性search中的索引types的属性值。我的数据是 { "line_num": 1, "action1": "ORIGINAL", "process_code1": "PENDING", "isPR": "Y", "req_header_reference_num": "PC5298", "req_line_reference_num": "PC5298", "pr_line_no": "1", "pr_id": "ffd3f7cc6", "pr_po_flag": "N", "pr_item_id": "720541" } 从这个数据我想基于属性值进行search。 示例如果我给“ORIGINAL” ,在此基础上从elasticsearch中获取特定文件那么如何解决这个问题呢先谢谢

Elasticsearch NodeJSsearch:如何从响应中检索结果

我正在尝试使用节点js在Elasticsearch中进行search。 这是我的脚本 var elasticsearch = require('elasticsearch'); var client = elasticsearch.Client({ host: 'localhost:9200', log: 'trace' }); client.ping({ // ping usually has a 3000ms timeout requestTimeout: Infinity, // undocumented params are appended to the query string hello: "elasticsearch!" }, function (error) { if (error) { console.trace('elasticsearch cluster is down!'); } else { console.log('All is well'); getmeres(client); } […]

nodejs SyntaxError:意外的标记

我正在使用elasticsearch-exporter从Elasticsearch导出数据。 该工具最初是一个nodejs应用程序。 当我尝试使用下面的命令node exporter.js使工具列出所有可用的选项时,它会崩溃,出现以下exception /home/me/storage/Elasticsearch-Exporter/log.js:54 exports.error = (…args) => !capture("ERROR", args) && console.log(timestamp() + util.format(…args).red); ^^^ SyntaxError: Unexpected token … at exports.runInThisContext (vm.js:53:16) at Module._compile (module.js:374:25) at Object.Module._extensions..js (module.js:417:10) at Module.load (module.js:344:32) at Function.Module._load (module.js:301:12) at Module.require (module.js:354:17) at require (internal/module.js:12:17) at Object.<anonymous> (/home/anas/storage/Elasticsearch-Exporter/exporter.js:9:11) at Module._compile (module.js:410:26) at Object.Module._extensions..js (module.js:417:10) 这里是抛出exception的行 exports.error = (…args) => […]

如何在elastic.js(elasticsearch)中计算具有相同值的字段?

我有一个社区的名单。 我需要创build聚合查询,它将统计所有具有相同标题的数据。 [ { "_id": "56161cb3cbdad2e3b437fdc3", "_type": "Comunity", "name": "public", "data": [ { "title": "sonder", "creationDate": "2015-08-22T03:43:28 -03:00", "quantity": 0 }, { "title": "vule", "creationDate": "2014-05-17T12:35:01 -03:00", "quantity": 0 }, { "title": "omer", "creationDate": "2015-01-31T04:54:19 -02:00", "quantity": 3 }, { "title": "sonder", "creationDate": "2014-05-22T05:09:36 -03:00", "quantity": 3 } ] }, { "_id": "56161cb3dae30517fc133cd9", "_type": "Comunity", […]

在Node.js中构build“filter代理”

我有一个elasticsearch服务器,我想查询,但在向用户显示结果之前,我想过滤结果(在数据库中查找用户权限等) 所以我想我写了一个代理服务器接收JSON POSTsearch请求,并将其redirect到Elasticsearch服务器。 现在将结果的响应发送到“filter服务器”。 这个服务器在数据库中查找收到的json数据,并删除用户不被允许查看的结果。 这个过滤的内容应该呈现给用户。 好的 – 这就是我所做的: var proxy = http.createServer(function (req, res){ if(req.method == 'OPTIONS'){ res.writeHead(200, {'Access-Control-Allow-Origin': '*', 'Content-Type': 'application/json; charset=UTF-8'}); res.end(); } if(req.method == 'POST'){ var searchOptions = { host: '10.0.10.1', port: 9200, method: 'POST', path: '/ltg_5096/_search' } var searchRequest = http.request(searchOptions, function(searchResponse){ // this is the Request to the Elasticsearch […]