使用Lucene.NET 2.9.4时遇到问题。也许任何人都可以帮助我。
目前,当用户输入单词 open 时,我会自动将搜索热门更改为 * open * 。我设置了QueryParser.SetAllowLeadingWildcard(true);我知道,这可能很贵......
我的文字是:
“ 您可以使用菜单文件/打开来编辑现有文档 ”
当我使用 打开 * 或 打开 作为搜索字词时,lucene会找到该文字。
当我使用 * 打开 * 时,lucene找不到文字。
为什么不呢?领先的通配符有什么问题?我想在一个单词的开头,结尾和中间找到搜索词。
我想搜索 open 和...
我该怎么做?
答案 0 :(得分:1)
每个默认的前导通配符都被禁用,但是使用Lucene> = 2.1时,有一种方法可以启用它。
QueryParser by不支持前导通配符(例如* ook) 默认。从Lucene 2.1开始,可以通过调用启用它们 QueryParser.setAllowLeadingWildcard(true)。请注意,这可以是一个 昂贵的操作:它需要扫描令牌列表 完全索引以查找与模式匹配的那些。
答案 1 :(得分:1)