elasticsearch 如何使用elasticsearch 5.5.1为文件编制索引
我不熟悉Elasticsearch。我已成功安装了带有Kibana、X-pack和ingest附件的Elasticsearch。我同时运行Elasticsearch和Kibana。目前,我在windows 2012服务器上使用默认选项进行安装,使其保持简单。我在另一个驱动器
elasticsearch 如何使用elasticsearch 5.5.1为文件编制索引,
elasticsearch,kibana,
elasticsearch,Kibana,我不熟悉Elasticsearch。我已成功安装了带有Kibana、X-pack和ingest附件的Elasticsearch。我同时运行Elasticsearch和Kibana。目前,我在windows 2012服务器上使用默认选项进行安装,使其保持简单。我在另一个驱动器w\mydocs上有一个目录,目前它只有3个纯文本文件,但我想添加其他文件,如pdf和doc文件类型。现在我想把这些文件放到ElasticSearchs索引中。我已经尝试使用以下链接作为指导,但我无法让它工作 以下是我如何设置
w\mydocs
上有一个目录,目前它只有3个纯文本文件,但我想添加其他文件,如pdf和doc文件类型。现在我想把这些文件放到ElasticSearchs索引中。我已经尝试使用以下链接作为指导,但我无法让它工作
以下是我如何设置索引和管道:
PUT _ingest/pipeline/docs
{
"description": "documents",
"processors" : [
{
"attachment" : {
"field": "data",
"indexed_chars" : -1
}
}]
}
PUT myindex
{
"mappings" : {
"documents" : {
"properties" : {
"attachment.data" : {
"type": "text",
"analyzer": "standard"
}
}
}
}
}
然后,为了获得中的第一个文档,我使用以下命令:
PUT localhost:9200/documents/1?pipeline=docs-d@/w/mydocs/README.TXT
我收到的错误是:
{
"error": {
"root_cause": [
{
"type": "parse_exception",
"reason": "request body is required"
}
],
"type": "parse_exception",
"reason": "request body is required"
},
"status": 400
}
即使在索引二进制数据时,您仍然必须向Elasticsearch发送有效的JSON。这意味着,您必须将文档编码为base64,然后将其放入类似这样的JSON文档中
{
"data" : "base64encodedcontentofyourfile"
}
我被建议不要使用摄取附件,而是使用FsCrawler。我成功地让Fscrawler工作,而无需将任何内容转换为base64。因此,现在如果我放置以下内容:
put localhost:9200/documents/1?pipeline=docs{“data”:“base64_encode('w:\\myDocs\\README.TXT')”
我收到一个非法的base64字符5f参数,但您需要在客户端将文件内容转换为base64,然后将该字符串作为数据字段发送。仅仅指定路径是行不通的。