如何正确索引数据?

时间:2018-04-16 09:20:01

标签: elasticsearch question-answering

请帮帮我。我有一个具有以下结构的JSON文件。

{
    "question": [ ... ], 
    "answer": [ ... ]
},
{
    ...
}

任务是以文本的形式发出请求,以便他搜索我索引的问题,并以搜索结果的形式显示答案。

我想索引所有问题字段,但我不知道如何处理答案字段。

你能告诉我该做什么或者至少在哪里阅读。

1 个答案:

答案 0 :(得分:0)

以下内容应该概述了映射在Elasticsearch中的工作原理。

我首先建议您将json文件转换为包含此结构的多个JSON对象:

{
  "question":"What is the meaning of life?",
  "answer":"42."
}

你的索引看起来像这样:

PUT my_index
{
  "mappings":{
    "myFirstMapping": {
      "properties": {
        "question": {
          "type": "text",
          "analyzer": "standard"
        },
        "answer": {
          "type":"text",
          "index": "false"
        }
      }
    }
  }
}

根据文本,语言或特殊要求,您可以在以后构建更复杂的分析器,到目前为止您只使用标准分析器:Standard Analyzer

看看我们在字段回答中如何指定它不包含在索引中,这意味着我们不会搜索答案字段,因此分析它是没有意义的。

然后你可以用这种方式对每对问题/答案进行索引:

POST my_index/myFirstMapping
{
  "question":"What is the meaning of life?",
  "answer":"42."
}

最后,您可以执行以下搜索:

GET my_index/_search
{
  "query": {
    "match": {
      "question": "life?"
    }
  }
}