如何在弹性搜索中使字段具有不同类型

时间:2016-01-23 17:42:36

标签: elasticsearch

我需要一个字段(此处为score)为数字,其他时间为字符串。像:

{
  "name": "Joe"
  "score": 32.5
}

{
  "name": "Sue"
  "score": "NOT_AVAILABLE"
}

如何在弹性搜索的索引设置中表达这一点?

我基本上想要"动态打字"在球场上。代码可能对你没有意义(例如:为什么不将它分成两个不同的字段),但是为了一致性原因,这是必要的(出于一致性原因)。

我不需要/希望将财产编入索引/"可搜索"顺便说一句。我只需要将数据放在json响应中。我需要像&#34这样的东西;任何对象都适合这里"。

2 个答案:

答案 0 :(得分:2)

终于明白了。我所要做的就是将from datetime import datetime datetime.timestamp(datetime.strptime('Sunday, September 26, 2010 at 8:35 PM', "%A, %B %d, %Y at %I:%M %p")) >>1285547700.0 设置为false,弹性搜索不会尝试对数据执行任何操作 - 但它仍然存在于json响应中。

像这样:

enabled

答案 1 :(得分:0)

只需将var quiz = document.getElementById("quiz"); quiz.addEventListener("click", function(e) { if (e.target.tagName.toUpperCase() === "INPUT") { var value = e.target.value; // The value of the clicked radio button snippet.log("The value of that radio button is " + value); } }); for (var n = 0; n < 5; ++n) { var div = document.createElement("div"); div.innerHTML = '<label><input type="radio" value="' + n + '" name="answer"> Radio ' + n + '</label>'; quiz.appendChild(div); }字段定义为类型&#34;字符串&#34;在您的映射中。就是这样。确保在索引任何文档之前定义映射。否则,如果您动态创建映射并且<div id="quiz"></div> <!-- Script provides the `snippet` object, see http://meta.stackexchange.com/a/242144/134069 --> <script src="//tjcrowder.github.io/simple-snippets-console/snippet.js"></script>字段的值类型只是您索引的第一个文档中的字符串,那么您将无法索引其中{{1拥有一个字符串。