我有具有solr搜索功能的应用程序。当我查询搜索结果时,只有具有值的字段。如何在solr中使用空字段值获取结果?即使字段值为空,如何获取结果中的所有字段?
答案 0 :(得分:0)
每个文档仅存储存在的字段,因此,如果要保持空白字段实际可用,则必须将空白内容显式索引到该字段中。如何执行取决于您今天如何将文档索引到Solr。
您可以通过以下方法解决此问题:为您首先查询的核心/集合获取架构,检索字段名称,并在必要时为架构中存在的每个字段添加空字段。
假设丢失的字段为空,然后将代码包装在检查该字段是否存在的情况下可能会更容易,如果不存在,则返回空值。
这样做的原因是,尽管Solr使用模式,但底层的Lucene库却没有-任何文档都可以包含一组与索引中存在的其他文档无关的字段名。由于架构也可以独立于索引的内容进行更改(架构更改不会更新现有文档),因此返回不存在的字段也不是很简单-在大多数情况下,返回的文档应尽可能接近实际被索引的内容。