- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在运行 SOLR 作为内部网的搜索引擎,该内部网拥有超过 40000 个文档。我通过使用 copyField 指令将 title
和 keywords
字段复制到 content
字段并仅对其进行索引来保持非常简单。
从现在开始我们使用这个配置:
<analyzer type="index">
<tokenizer class="solr.WhitespaceTokenizerFactory" />
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="1" preserveOriginal="1" />
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" />
<filter class="solr.LowerCaseFilterFactory" />
<filter class="solr.SnowballPorterFilterFactory" language="German" />
<filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
</analyzer>
效果很好,但有人提示说必须手动设置通配符。所以我在分析器的最后一行添加了 NGRamFilterFactory
:
<analyzer type="index">
<tokenizer class="solr.WhitespaceTokenizerFactory" />
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="1" preserveOriginal="1" />
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" />
<filter class="solr.LowerCaseFilterFactory" />
<filter class="solr.SnowballPorterFilterFactory" language="German" />
<filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
<filter class="solr.NGramFilterFactory" minGramSize="3" maxGramSize="30" />
</analyzer>
现在的问题是:使用旧配置,我用某个关键字('Sony')找到了 7 个文档。现在,只有 2 个。我完全刷新了索引并从头开始构建它。当我再次取出该行并重新索引文档时,它再次按预期工作。这引出了我的问题:
提前致谢!
最佳答案
只是一个疯狂的猜测 -
内容字段的大小(字数)是多少?
因为,现在您将 NGramFilterFactory 放入您的过滤器链中,其 minGramSize 为 3,将生成许多 token ,并且所有 token 都位于新位置。
solrconfig.xml 中的 maxFieldLength 设置限制了要索引的标记数。
默认值为 10000(仍然很高),但可以超过过滤器链中的大内容和 ngramfilter。
<maxFieldLength>10000</maxFieldLength>
尝试将此值增加到一个较大的数字,重新索引并检查是否找到匹配项。
关于lucene - SOLR:NGramFilterFactory 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7751394/
我正在运行 SOLR 作为内部网的搜索引擎,该内部网拥有超过 40000 个文档。我通过使用 copyField 指令将 title 和 keywords 字段复制到 content 字段并仅对其进行
最近在研究如何使用Solr进行存储和索引。我想做facet.prefix 搜索。使用空格标记器,“你在哪里”将被分成三个单词并建立索引。如果我搜索facet.prefix =“where are”,将
我是 Solr 的初学者。在我的项目中,NGramFilterFactory和 EdgeNGramFilterFactory ,两者都用于一个字段。我对文档的理解是 EdgeNGramFilterFa
我正在尝试使用 Solr 中的 NGramFilterFactory(使用 Rails 中的 Sunspot)来查找类似的标题。我设法向我的 solr schema.xml 添加了一个新字段,如下所示
我正在使用 NGramFilterFactory 进行索引和查询。 因此,如果我要搜索“溢出”,它会创建如下查询: mySearchField:"ov ve ... erflow overflo ve
我有一种情况需要同时使用 EdgeNGramFilterFactory 和 NGramFilterFactory。 我正在使用 NGramFilterFactory 执行“包含”样式的搜索,最小字符数
我是一名优秀的程序员,十分优秀!