如何操作发送到Solr的查询字符串?Solr:操作查询字符串
例如,有人输入“stackoverflow-version1.0”,但没有找到结果。但是,如果查询只是“stackoverflow”,搜索将会成功。 所以我想截断“ - ”并再次搜索第一部分。
有些研究把我带到solr.PatternReplaceCharFilterFactory类。我将它包含在我的schema.xml中。有没有人看到,为什么我的查询仍然没有产生任何结果?我应该使用其他课程吗?
UPDATE: 现在我的代码看起来如下:
<fieldType name="ngram" class="solr.TextField" omitNorms="true">
<analyzer type="index">
<tokenizer class="solr.NGramTokenizerFactory" minGramSize="1" maxGramSize="20" />
<filter class="solr.WordDelimiterFilterFactory"
generateWordParts="1"
splitOnNumerics="0"
generateNumberParts="0"
catenateWords="0"
catenateNumbers="0"
catenateAll="0"
preserveOriginal="1"
/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.ASCIIFoldingFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.WordDelimiterFilterFactory"
generateWordParts="1"
generateNumberParts="0"
splitOnNumerics="0"
catenateWords="0"
catenateNumbers="0"
catenateAll="0"
preserveOriginal="1"
/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.ASCIIFoldingFilterFactory"/>
</analyzer>
</fieldType>
你能否澄清,是失败的查询:'计算器 - version1.0'或'“计算器 - 1.0版”' – femtoRgon
它是不带引号 – steph