我刚刚更新了一个网站,该更新为elasticsearch添加了新字段。
在我的开发环境中,一切正常。但在实际网站上,找不到新字段。
EG。我添加了一个值为1
的新字段但是,添加
的过滤查询时{ “场”:1}
找不到任何匹配的结果。
当我查看文档时,我可以看到字段设置为1的文档
这样做的原因是在映射设置后添加了新字段吗?我对弹性搜索并不熟悉,所以我不确定从哪里开始寻找修复它。
任何帮助都将不胜感激。
更新
从URL查询不显示任何内容
_search/?pretty=true&size=50&q=field1:*
然而,在我可以搜索的同时添加了另一个字段。 我可以在结果集中看到field1,但它不允许我在其上搜索。
我在映射中看到的唯一区别是,正在工作的那个设置为type:long而不工作的设置为type:string
答案 0 :(得分:1)
这是ngram的长度问题吗?你的“min_gram”设置是什么? 检查索引设置时如下:
GET <host>/<index_name>/_settings
过滤两位数字段时是否有效? 所有的字段值都是一位数吗?
答案 1 :(得分:0)
在设置映射后添加字段是可以的。 ElasticSearch会为您猜测映射。 (事实上,这是他们的销售功能之一---无需定义映射,只需将数据丢给它)
有些事情可能会出错:
验证数据实际上是否在索引中。要做到这一点,只需导航到没有参数的_search
网址,您应该看到该字段是否被编入索引。
查看您的映射。可能是该字段明确设置为不编入索引吗?
另一种可能性是您的查询错误(但这不太可能,因为您说它在开发环境中有效)