【问题标题】:lucence search all? with QueryParserlucence 搜索所有?使用查询解析器
【发布时间】:2011-05-30 03:30:15
【问题描述】:

这是我的代码的一部分。我不想在 desc 中搜索文本,而是想搜索所有内容(desc、标题、示例等)。我该怎么做呢?我是否要进行另一个字段调用 all 并将每个字段复制到其中?我可以做一些像“”,null或“*”来表示搜索它们吗? (我都试过了,都没有结果)。

如何使用我的文本搜索所有字段?

public static List<Pair<long, float>> Search(string text)
{
    var searcher = new IndexSearcher(directory, true);
    var parser = new QueryParser(Lucene.Net.Util.Version.LUCENE_29, "desc", analyzer);
    var query = parser.Parse(text);
    var hits = searcher.Search(query);
    // etc
}

【问题讨论】:

    标签: lucene lucene.net


    【解决方案1】:

    如果 lucene 隐含地支持“全部”的概念就好了。您剩下索引 1 个附加字段(将其命名为“全部”),其内容将是 desc、标题、示例等的串联,但不存储它,只是索引。

    【讨论】:

    • 嗯,yes 和 no 有什么区别(我可以猜到 compress)。我不明白为什么存在该选项
    • Yes 表示数据也由 lucene 存储,它增加了索引的大小。增加索引大小意味着在合并/优化操作时有更多时间。但是,如果您想要突出显示功能,那么我相信您必须存储它。如果我已经回答了您的问题,请接受答案
    • 我试过了,搜索成功了。所以存储它有助于突出显示?我从未听说过突出显示。所以我真的不需要存储这些字段吗?我会改变它,看看会发生什么。顺便说一句,几乎所有这些数据也在我的 mysql 数据库中。我严格使用 lucence 进行搜索
    • 如果您在数据库中拥有所有数据,那么只需索引数据而不在 lucene 中存储除主键/自然键之外的任何内容。通过这种方式,您可以对 lucene 索引执行搜索,并且在显示时您可以从 mysql db 中检索详细信息。 lucene索引和mysql db之间的链接是主键/自然键
    猜你喜欢
    • 1970-01-01
    • 2021-06-01
    • 1970-01-01
    • 2017-07-09
    • 2012-06-10
    • 1970-01-01
    • 2011-08-24
    • 2010-09-06
    • 1970-01-01
    相关资源
    最近更新 更多