0

我将 Lucene_29 用于搜索功能。我在 lucene 中进行部分搜索的代码是

  var terms = input.Trim().Replace("-", " ").Split(' ')
            .Where(x => !string.IsNullOrEmpty(x)).Select(x => x.Trim() + "*");
        input = string.Join(" ", terms);

在这里,我将星号附加到部分搜索的输入数据中。当我将输入作为“swetha”或“swe”传递时。我正在完美地获取搜索数据。但是当我选择“湿”时。我没有得到包含“swetha”的字段。任何人都可以帮我找到解决方案。我正在像这样解析我的输入

query = parser.Parse(input.Trim());
4

1 回答 1

0

如果要在两端使用通配符,则需要将 AllowLeadingWildcard 选项设置QueryParser为 true。

正如 jishi 所说,这是非常次优的并且可能非常缓慢,因为它会扫描您的整个术语词典。

指向 setAllowLeadingWildcard 文档的链接

于 2012-09-27T18:04:02.080 回答