0

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

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

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

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

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

4

1 回答 1

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"
        }
      }
    }
  }
}

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

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

然后,您可以继续以这种方式为每对问题/答案编制索引:

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

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

GET my_index/_search
{
  "query": {
    "match": {
      "question": "life?"
    }
  }
}
于 2018-04-16T10:04:36.250 回答