Loops 拆分solr中字段的值以与另一个值进行比较

Loops 拆分solr中字段的值以与另一个值进行比较,loops,solr,dataimporthandler,Loops,Solr,Dataimporthandler,我是新来索尔的。 我有MySQL JDBC数据导入中的Solr字段。该字段的数据库列的值为test、test2、test3。如果我在Solr中选择fieldtype Fieldtype为字符串,值为[test,test2,test3]。 Fieldtype为string,值为test、test2、test3 我想访问Solr中的每个值,以便与另一个字符串进行比较。所以test1比较另一个字符串,test2比较另一个字符串,依此类推。我在索尔怎么做?也许是疑问什么的?使用循环或其他一些技巧?您可以

我是新来索尔的。 我有MySQL JDBC数据导入中的Solr字段。该字段的数据库列的值为test、test2、test3。如果我在Solr中选择fieldtype

Fieldtype为字符串,值为[test,test2,test3]。 Fieldtype为string,值为test、test2、test3
我想访问Solr中的每个值,以便与另一个字符串进行比较。所以test1比较另一个字符串,test2比较另一个字符串,依此类推。我在索尔怎么做?也许是疑问什么的?使用循环或其他一些技巧?

您可以使用一个不同的字段类型,该字段类型有一个在逗号上拆分的标记器。在您的情况下,您可以向模式的相关部分添加如下内容:

<types>
<fieldType class="solr.TextField" name="comma_separated">
    <analyzer>
         <tokenizer class="solr.SimplePatternTokenizerFactory" pattern=","/>
    </analyzer>
</fieldType>
</types>

<fields>
<field name="my_comma_separated_field" indexed="true" stored="true" multiValued="true" type="comma_separated" />
</fields>
现在,当您索引到逗号分隔的字段时,您的值将被逗号分割,您将能够搜索其中的每一个

另外,根据需要向fieldType定义中添加其他筛选器


您可以找到标记器文档

实际上我找到了解决方案。我在通过数据库从表中检索select*时拆分了该字符串,并在Solr模式中创建字段来处理每个拆分的字符串。幸运的是,我只有3个用逗号分隔的字符串。无论如何,你的解决方案似乎有效,但我还没有尝试过这个解决方案,也许下次吧。但是,感谢您的解决方案请尝试此解决方案,然后再接受它,否则可能会误导其他可能提及此问题的人。