0
我使用ElasticSearch进行测试,并遇到远程查询问题。 考虑,我已经插入下列文件:使用ElasticSearch进行远程查询
curl -XPUT 'localhost:9200/test/test/test?pretty' -d '
{
"name": "John Doe",
"duration" : "10",
"state" : "unknown"
}'
现在I'me尝试这样做,抓住其持续时间为5和15之间的所有文档的远程查询:
curl -XPOST 'localhost:9200/test/_search?pretty' -d '
{
"query": {
"range": {
"duration": {
"gte": "5",
"lte": "15"
}
}
}
}'
这将返回但是如果我像这样运行查询,没有命中:
curl -XPOST 'localhost:9200/test/_search?pretty' -d '
{
"query": {
"range": {
"duration": {
"gte": "10"
}
}
}
}'
它返回我之前插入的文档。如何查询ElasticSearch的持续时间值介于5和15之间的文档。
谢谢你,事实是,我已经尝试过多次,但我从来没有试图删除文件和再次插入它,我不断更新相同的对象,将持续时间字段更改为整数,但它永远不会工作,但是,删除我的旧文档并重新编制索引使得范围查询按预期工作。 – 2015-03-31 11:01:16
很好用!您必须删除文档的原因是,如果未指定映射,则弹性会在首次编制索引时自动为您的文档创建映射。然后它猜测用于文档字段的类型。在这种情况下,它决定使用一个字符串来存储持续时间。 只有当您删除索引时,此自动创建的映射也会被删除。 – mdewit 2015-03-31 11:05:58