每当我尝试做searchHit.sourceAsString()
或searchHit.getSourceAsString()
时,我都会得到null
。但是,如果我尝试searchHit.getFields()
->它会给我一个Map[String, SearchHitField]
,然后我可以从中获取必要的字段-我不想这样做。那是因为我想在我的案例类中使用Lift-json
库来解析json
t中的“如果获得” searchHi
字符串。有任何想法吗?
最佳答案
如果您不要求字段searchHit.sourceAsString()
,null
将返回_source
。
如果您在映射中将其禁用(在这种情况下必须启用它),或者指定其他要返回的字段,则会发生这种情况。
特别是,您必须将_source
传递到SearchRequestBuilder中的字段列表。默认字段列表为[_source]
,因此,如果您未指定任何其他字段,则将取回_source
,但是,如果您指定其他字段,则还必须添加_source
。