Elasticsearch没有搜索某些字段

时间:2014-02-03 09:37:59

标签: elasticsearch

我刚刚更新了一个网站,该更新为elasticsearch添加了新字段。

在我的开发环境中,一切正常。但在实际网站上,找不到新字段。

EG。我添加了一个值为1

的新字段

但是,添加

的过滤查询时

{ “场”:1}

找不到任何匹配的结果。

当我查看文档时,我可以看到字段设置为1的文档

这样做的原因是在映射设置后添加了新字段吗?我对弹性搜索并不熟悉,所以我不确定从哪里开始寻找修复它。

任何帮助都将不胜感激。

更新

从URL查询不显示任何内容

_search/?pretty=true&size=50&q=field1:*

然而,在我可以搜索的同时添加了另一个字段。 我可以在结果集中看到field1,但它不允许我在其上搜索。

我在映射中看到的唯一区别是,正在工作的那个设置为type:long而不工作的设置为type:string

2 个答案:

答案 0 :(得分:1)

这是ngram的长度问题吗?你的“min_gram”设置是什么? 检查索引设置时如下:

GET <host>/<index_name>/_settings

过滤两位数字段时是否有效? 所有的字段值都是一位数吗?

答案 1 :(得分:0)

在设置映射后添加字段是可以的。 ElasticSearch会为您猜测映射。 (事实上​​,这是他们的销售功能之一---无需定义映射,只需将数据丢给它)

有些事情可能会出错:

  1. 验证数据实际上是否在索引中。要做到这一点,只需导航到没有参数的_search网址,您应该看到该字段是否被编入索引。

  2. 查看您的映射。可能是该字段明确设置为不编入索引吗?

  3. 另一种可能性是您的查询错误(但这不太可能,因为您说它在开发环境中有效)