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
我该如何摆脱“我该怎么做?”&引用;使用solr whitespacetokenizer和worddelimiterfilterfactory时,在标记的末尾_Solr_Lucene - Fatal编程技术网

我该如何摆脱“我该怎么做?”&引用;使用solr whitespacetokenizer和worddelimiterfilterfactory时,在标记的末尾

我该如何摆脱“我该怎么做?”&引用;使用solr whitespacetokenizer和worddelimiterfilterfactory时,在标记的末尾,solr,lucene,Solr,Lucene,我要标记以下文本: “我们买一台PowerShot-100相机吧。” 我使用的是空格标记器,然后是单词分隔符工厂 worddelimiterfilterfactory正在创建诸如“lets”、“let's”、“buy”、“a”、“Power”、“PowerShot”、“Shot”、“100”、“PowerShot100”、“camera”以及“camera”等标记 当我尝试运行类似“PowerShot-100 camera”的短语查询时,会返回文档,但“PowerShot-100 camera”

我要标记以下文本:

“我们买一台PowerShot-100相机吧。”

我使用的是空格标记器,然后是单词分隔符工厂

worddelimiterfilterfactory正在创建诸如“lets”、“let's”、“buy”、“a”、“Power”、“PowerShot”、“Shot”、“100”、“PowerShot100”、“camera”以及“camera”等标记

当我尝试运行类似“PowerShot-100 camera”的短语查询时,会返回文档,但“PowerShot-100 camera”不会返回任何内容。如果我传递的slop值为2,它将返回文档。标记“camera.”和“camera”的起始位置相同。我不明白为什么短语查询“PowerShot-100 camera”没有返回任何内容

这是模式


尝试此字段类型,它将解决您的问题

<fieldType name="text_delimeter" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" preserveOriginal="1" catenateAll="1" splitOnCaseChange="0"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<!--
    <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0" preserveOriginal="1" catenateAll="0" splitOnCaseChange="0"/> 
-->
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>

这很有效。但是最后带“.”的查询不起作用。看起来我可能需要为短语查询定义一个单独的字段类型。非常感谢。