pha*_*ani 3 lucene solr facet faceted-search
在我的分析器链中,ShingleFilter 位于停用词过滤器之后。如文档中所述,ShingleFilter 通过插入填充标记(带有术语文本“_”的标记)来处理位置增量 > 1。
For example : "please divide this sentence into biword shingles"
Shingles of size 2 : please divide, divide _, _ sentence, sentence _, _ biword, biword shingles (assuming that "this, "into" are stopwords)
Run Code Online (Sandbox Code Playgroud)
我想用填充标记消除那些带状疱疹,即我想要的输出仅包含:请划分,双字带状疱疹。
我有一个专门的领域,用于处理高达 4 克的带状疱疹。由于这些停用词,所有方面的约束(或值)对于像“divide _ sentence _”这样的填充物看起来都没用
请你指导我。
使用 Solr 4.4。
更新
我想到在 StopFilter 配置中将 enablePositionIncrement 设置为 false。不确定这是否能解决问题,但 Lucene 4.4 不再支持。
添加PatternReplaceFilterFactory在你的后分析仪链ShingleFilterFactory。将所有包含填充标记的标记替换为空字符串,即“”。
这可能会暂时解决您的问题,但永久解决方案必须编写您自己的分析器或自定义 ShingleFilter。
示例字段类型:
<fieldType name="text_general_shingle" class="solr.TextField" positionIncrementGap="100">
<analyzer>
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.ShingleFilterFactory" maxShingleSize="3" outputUnigrams="true"/>
<filter class="solr.PatternReplaceFilterFactory" pattern=".*_.*" replacement=""/>
</analyzer>
</fieldType>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3033 次 |
| 最近记录: |