Java 使用Spring Boot在Solr中搜索逗号分隔的列表
我有一个对象Java 使用Spring Boot在Solr中搜索逗号分隔的列表,java,groovy,solr,spring-boot,criteria,Java,Groovy,Solr,Spring Boot,Criteria,我有一个对象Foo,具有列表属性名称: class Foo { List<String> names = [] } 然后,我尝试对其执行搜索,其中,只要有任何值与列表中的任何值匹配,我就希望命中: new Criteria('names').in(filter.names) 但是,由于这些值在Solr中存储为逗号分隔的字符串,因此我不会返回任何结果 我是否应该更改某些内容,以便能够将字段拆分或参数化为列表,以便执行搜索?一个可能的解决方案是将solr中的字段设置为多值 如
Foo
,具有列表
属性名称:
class Foo {
List<String> names = []
}
然后,我尝试对其执行搜索,其中,只要有任何值与列表中的任何值匹配,我就希望命中:
new Criteria('names').in(filter.names)
但是,由于这些值在Solr中存储为逗号分隔的字符串,因此我不会返回任何结果
我是否应该更改某些内容,以便能够将字段拆分或参数化为列表,以便执行搜索?一个可能的解决方案是将solr中的字段设置为多值 如果是逗号分隔的,那会成为一个列表吗?我认为多值意味着该字段可以多次声明。是的,这应该在索引期间处理,以确保存储在索引中的数据是多值格式的。如果无法在源代码处更改数据格式,则可以在数据加载期间使用以下方法处理此问题。是的,这是有效的——关键是确保字段显示多次(而不仅仅是逗号分隔)。
new Criteria('names').in(filter.names)