Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用Solr索引多值,选择类型=文本或字符串_Java_Solr - Fatal编程技术网

Java 使用Solr索引多值,选择类型=文本或字符串

Java 使用Solr索引多值,选择类型=文本或字符串,java,solr,Java,Solr,我读过一个spring solr示例,我有一个问题如下: 在产品实体中,有许多类别,我想对它们进行索引和查询 在模式中,我有以下配置: (带有简单标记器的文本:WhitespaceTokenizerFactory)(1) 或 (2) 这取决于您希望使用/使用类别字段的方式 顺便说一句,它是多值的而不是多值的。只有当您有一个精确的匹配项,或者一个与字段匹配的通配符查询时,StrField才会匹配。没有对值执行标记化或过滤,Foo与Foo不同。如果您只想基于字段值进行过滤或使用字段进行镶嵌面处理,

我读过一个spring solr示例,我有一个问题如下:

在产品实体中,有许多类别,我想对它们进行索引和查询

在模式中,我有以下配置:

(带有简单标记器的文本:WhitespaceTokenizerFactory)(1)
或

(2)
这取决于您希望使用/使用类别字段的方式


顺便说一句,它是多值的而不是多值的。

只有当您有一个精确的匹配项,或者一个与字段匹配的通配符查询时,StrField才会匹配。没有对值执行标记化或过滤,
Foo
Foo
不同。如果您只想基于字段值进行过滤或使用字段进行镶嵌面处理,则这是很好的

如果要在字段中搜索,只需将“beyond”与“Bed,Bath&beyond”匹配,则需要一个
TextField
,并应用不同的分析器和标记器(取决于匹配的方式和内容)


这意味着:这取决于您的用例和您想要实现的目标。在两个不同的字段中使用相同的值也没有什么错,在这两个字段中,您对每个字段执行不同的标记化或分析。使用
copyField
在两个字段中获得相同的值,然后根据您想要搜索的方式或您想要执行的操作来查询每个字段(即一个用于刻面,一个用于搜索)。

使用搜索词索引和查询的两种方式的性能如何是一个类别列表