2015-05-07 71 views
1

我有一个List<String>属性名对象Foo Solr中以逗号分隔的列表:搜索使用Spring引导

class Foo { 
    List<String> names = [] 
} 

在我的Solr的schema.xml,我把它设置为一个字符串:

<field name="names" type="string" indexed="true" stored="true"/> 

我再努力就可以了,在这里,只要任何一个值的匹配列表中的任何的那些,我希望一击执行搜索:

new Criteria('names').in(filter.names) 

但是,因为这些值在Solr中以逗号分隔的字符串存储,所以我没有找回任何结果。

有什么我应该改变,以便能够拆分或参数化字段到列表中,以便我可以执行我的搜索?

回答

1

一个可能的解决方案是使solr中的字段为多值。

+0

如果它是以逗号分隔的话,它会成为一个列表吗?我认为multiValued意味着该领域可能只是多次宣布。 – Igor

+0

是的,这应该在索引时间内处理,以确保存储在索引中的数据是多值格式。如果您无法在源代码中更改数据格式,则可以在数据加载期间处理它。 http://stackoverflow.com/questions/16278593/adding-a-multivalued-commas-separated-string-to-solr-isnt-working –

+0

是的,这工作 - 关键是要确保字段显示多个次(而不仅仅是逗号分隔)。 – Igor