MultiFieldQueryParser 模糊搜索

时间:2021-02-26 07:02:40

标签: lucene lucene.net

我正在尝试实施模糊搜索,该搜索采用“Samsung Galaxy S7 平板电脑”等字符串并跨多个字段(类别、品牌、型号)进行搜索,但我无法设置模糊查询的敏感度。

以下代码

    var line = "Samsung Galaxy S7 tablet";
    Analyzer analyzer = new StandardAnalyzer(LuceneVersion.LUCENE_48);
    
    string[] searchfields = new string[] { "Category", "Brand", "Model" };

    var query = new BooleanQuery();
    var parser = new MultiFieldQueryParser(LuceneVersion.LUCENE_48, searchfields, analyzer);
    string[] terms = line.Split(new[] { " " }, StringSplitOptions.RemoveEmptyEntries);

    foreach (string term in terms)
    {
        var q = parser.Parse(term.Replace("~", "") + "~0.8");
        query.Add(q, Occur.MUST);
    }

总是产生这样的查询 +(Category:samsung~2 Brand:samsung~2 Model:samsung~2) +(Category:galaxy~2 Brand:galaxy~2 Model:galaxy~2) +(Category:s7~2 Brand:s7~2 Model:s7~2) +(Category:tablet~2 Brand:tablet~2 Model:tablet~2)

知道如何设置模糊查询的敏感度。是否有更好的方法使用 Lucene 执行此类搜索?

谢谢!

0 个答案:

没有答案
相关问题