java - solr LowerCaseFilterFactory 不应过滤数字

标签 java solr

我使用的查询架构需要让 abc 匹配 Abc400 匹配 400 (用户名匹配)。

但是我发现当我使用LowerCaseFilterFactory时,当我查询400时它没有返回任何结果。 我深入研究了源代码,发现 LowerCaseTokenizerFactory 使用 LowerCaseTokenizer 扩展了 LetterTokenizer,并且它过滤了所有数字。

我应该如何解决这个问题?

最佳答案

您是对的,LowerCaseTokenizer 将删除所有非字母。查看您的架构非常有用(就提供有意义的答案而言),因为我不认为仅使用小写过滤器工厂就应该生成任何类型的Tokenizer

无论如何,分词器还有很多其他选择。两者StandardClassic可能更适合您的需求。

类似的事情:

<analyzer>
    <tokenizer class="solr.StandardTokenizerFactory"/>
    <filter class="solr.LowerCaseFilterFactory"/>
</analyzer>

可能对你有好处。

关于java - solr LowerCaseFilterFactory 不应过滤数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16248589/

相关文章:

java - 如何在特定核心上使用 Java API 在 Apache Solr (SolrJ) 中添加文档

java - GAE servlet 的 doPost() 不起作用

java - VisualVM 分析正在污染结果

java - 如何正确启动和关闭OSGi容器?

从 Eclipse 启动时创建新的 JFrame 时 Java 将关闭。没有抛出异常

solr - 如果我使用标准的 celeryconfig,pyramid_celery 有什么好处?

hadoop - Hadoop + Nutch 1.15 + Solr Cloud 7.3.1索引无结果

solr - Apache Cassandra 与 Apache Solr 的集成

java - spring JDBC 中的 Bad Sql Grammar Exception

java - 使用 Solr 索引文件会阻塞文件