Lucene.NET版本4.8 beta外壳问题

时间:2019-05-31 08:27:22

标签: lucene.net

在我正在执行的解决方案中,我正在使用Lucene.NET版本4.8(测试版)执行一些搜索任务,但是搜索不区分大小写的问题。我知道Lucene并不区分大小写,但是在使用StandardAnalyzer时,只要您确保正确完成查询,它就应该小写存储的数据(根据StandardAnalyzer的文档)。

所以你知道我在做什么错吗?我已经将数据“ Kirsten”存储在4个不同文档的一个字段中,当搜索(小写)“ kirsten”时,我没有找到匹配项,但是当搜索“ Kirsten”时,我得到了预期的4。

这是我的查询代码:

        query = query.ToLowerInvariant();
        BooleanQuery q = new BooleanQuery {
            new BooleanClause(new WildcardQuery(new Term(FieldNames.Name, query + WildcardQuery.WILDCARD_STRING)), Occur.SHOULD),
            new BooleanClause(new WildcardQuery(new Term("mt-year", query)), Occur.SHOULD),
            new BooleanClause(new WildcardQuery(new Term("mt-class", query + WildcardQuery.WILDCARD_STRING)), Occur.SHOULD)
        };

问题是用户总是写小写版本,并希望它能同时找到小写和大写字母。

1 个答案:

答案 0 :(得分:0)

@Peska在评论中写道,这是在将文档(和数据)添加到Lucene时使用StringField而不是TextField的情况。

一旦我改用TextField,一切都会按预期进行。