【发布时间】:2021-05-09 06:45:56
【问题描述】:
我正在尝试在我的 Solr/Lucidworks 设置中找出我的分析仪配置的正确配置。
我在 Solr 分析中看到的结果似乎表明我应该得到匹配,但是当我执行 Solr 查询(本机或在 Lucidworks UI 中)时,没有返回任何结果。
架构中的相关片段是:
<field name="content" indexed="true" multiValued="false" required="false" stored="true" type="dlowe_text_en"/>
<dynamicField indexed="true" name="*_txt_en_dlowe_split_tight" stored="true" type="dlowe_text_en"/>
<fieldType autoGeneratePhraseQueries="true" class="solr.TextField" name="dlowe_text_en" positionIncrementGap="100">
<analyzer>
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.EnglishPossessiveFilterFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.EnglishPossessiveFilterFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
我已经索引了一些包含字符串的内容:
Administrator's Guide
现在,当我使用 Solr 分析时,这是我得到的结果:
我的理解是,如果突出显示任何结果,则表示匹配,但是当我在 Solr 中对“管理员”进行搜索时,没有找到结果:
如果我搜索:
Administrator's
我确实得到了预期的结果。
我完全不了解分析工具应该如何工作?
我想要实现的是一个支持很多技术项目的搜索索引,它只会匹配精确的值。例如:
- V-123-1231-1231
- WILL_NOT_CHANGE
- /mnt/abc/Drivers/
- 4040:5050
所以 WhitespaceTokenizer 似乎最有意义,但我还需要对非技术字符串进行词干处理,这些字符串将由句点 (.)、破折号 (-)、下划线 (_)、斜杠 (\ 或 /) 表示等。
任何见解/建议将不胜感激。
【问题讨论】:
-
搜索并提及字段名:值,例如 q=content:administrator..检查您要搜索的默认字段名
标签: filter solr lucene tokenize lucidworks