如何解决Lucene 通配符查询 - 匹配字符串的长度
我已经建立了一个简单的 lucene.net 索引并且正在测试一些查询。
我有一个名为“传记”的字段的索引,我正在运行此查询
WildcardQuery query = new WildcardQuery(new Term("Biography","*anag*"));
这会返回带有“管理”一词的记录的匹配项 - 这很棒
如果我搜索这个...
WildcardQuery query = new WildcardQuery(new Term("Biography","*anagm*"));
然后我没有得到任何结果。
这是我在索引中的 2 个字符串 “我擅长项目管理” “我擅长编程和项目管理。我喜欢管理事物”
通配符搜索是否有字符限制?
我的用例将是一个供用户使用的自由文本搜索框 - 因此我不确定他们可能会输入什么并想要做一个通配符
解决方法
部分单词“anagm”不会出现在您的两个句子中,因此返回 0 结果应该是预期的行为:
“我擅长项目管理”
“我擅长编程和项目管理。我喜欢管理事物”
你认为哪个句子会匹配?为什么?
Lucene 更常用于匹配原始句子中的单词或更具体的标记。使用 Lucene 进行通配符匹配(就像使用 Sql 所做的那样)不太常见,因为以通配符开头的性能不高(就像使用 sql 一样)。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。