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 4-为发布的文本文件编制索引_Java_Solr_Solr4 - Fatal编程技术网

Java Solr 4-为发布的文本文件编制索引

Java Solr 4-为发布的文本文件编制索引,java,solr,solr4,Java,Solr,Solr4,我正在尝试创建一个名为sku的字段,该字段使用以下分析器编制索引: <fieldType name="sku" class="solr.TextField"> <analyzer> <tokenizer class="solr.PatternTokenizerFactory" pattern="(SKU|Part(\sNumber)?):?\s(\[0-9-\]+)" group="3"/> </analyzer> </field

我正在尝试创建一个名为sku的字段,该字段使用以下分析器编制索引:

<fieldType name="sku" class="solr.TextField">
   <analyzer>
  <tokenizer class="solr.PatternTokenizerFactory" pattern="(SKU|Part(\sNumber)?):?\s(\[0-9-\]+)" group="3"/>
</analyzer>
 </fieldType>
谢谢你的帮助


我知道我可以自己解析文本文件,提取SKU并把它们放在服务器的参数中,但是我认为SoR可以为我做这件事。

很难说发生了什么,因为中间有几个步骤。 例如,schema.xml的定义是什么。它肯定使用sku作为其类型,而不是字符串。那么,attr_sku的字段名是什么?提取处理程序映射是否正确地映射到它?提取处理程序通常将元数据作为单个字段发送,然后将所有文件内容作为一个长字段发送。sku是否存在于元数据中


我会把一个copyField转换成非处理的内容,看看内容是否真的转换成Solr字段。然后,我将开始对正则表达式本身进行故障排除。

您的SKU编号是否与模式要捕获的一样?也就是说:以SKU或Part开头,可选字号,可选冒号,必填!空格、一个或多个数字和连字符,而不捕获任何其他内容。注意,我相信这也会区分大小写。谢谢你的回复Alexandre。我使用了您建议的copyField,以查看内容是否进入solr字段。确实如此。我看不出正则表达式有什么问题,或者样本数据有什么问题,因为我直接从原始帖子中链接的Lucene docs页面上截取了它,我觉得它是正确的。尽管如此,我还是设法以不同的方式实现了我想要的,使用了不同的标记化器。谢谢你把我安排在正确的轨道上调试这个。
ContentStreamUpdateRequest up = new ContentStreamUpdateRequest(
                "/update/extract");
        up.addFile(arg0, arg0.getName());

        up.setParam("literal.id", arg0.getName());
        up.setParam("uprefix", "attr_");
        up.setParam("fmap.content", "attr_content");

        up.setAction(AbstractUpdateRequest.ACTION.COMMIT, true, true);

        server.request(up);