elasticsearch 如何使用elasticsearch 5.5.1为文件编制索引,elasticsearch,kibana,elasticsearch,Kibana" /> elasticsearch 如何使用elasticsearch 5.5.1为文件编制索引,elasticsearch,kibana,elasticsearch,Kibana" />

elasticsearch 如何使用elasticsearch 5.5.1为文件编制索引

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索引中。我已经尝试使用以下链接作为指导,但我无法让它工作 以下是我如何设置

我不熟悉Elasticsearch。我已成功安装了带有Kibana、X-pack和ingest附件的Elasticsearch。我同时运行Elasticsearch和Kibana。目前,我在windows 2012服务器上使用默认选项进行安装,使其保持简单。我在另一个驱动器
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,然后将该字符串作为数据字段发送。仅仅指定路径是行不通的。