我的产品代码具有特殊字符例如:abc-3%-100 。
我已使用 100 编制索引并进行搜索。\ n \ nSenr查询编写为 100 * 搜索。搜索结果正确(“未找到产品当我从产品代码中删除“%”时,搜索100 “假设我只有此产品”。
我无法理解为什么当产品的代码中含有%时,solr会将此产品返回给搜索文本100?
答案 0 :(得分:1)
如果您正在寻找完全匹配,那么您可以选择用于搜索的字段的字符串字段类型。
如果你使用了标记器..它将根据它们的写入方式创建标记。
当您使用关键字标记符时..它不会创建任何相同的标记。
使用上述标记器的好处是......你也可以使用其他一些过滤器,如停用词和小写等......
停用词过滤器可以帮助您删除像......是,等等等的单词。这些是很常见的,对索引没有任何意义......
小写过滤器在索引和搜索时以小写形式转换文本。
在当前情况下,停用词过滤器不适用。
答案 1 :(得分:0)
我得到了一个解决方案。我已将StandardTokenizerFactory中的 tokenizer 值更改为solword类型的KeywordTokenizerFactory