【问题标题】:best practice for DB & File search with lucene.net in a asp.net web application在 asp.net Web 应用程序中使用 lucene.net 进行数据库和文件搜索的最佳实践
【发布时间】:2012-06-26 10:26:50
【问题描述】:

我有需要开发站点搜索功能的站点。数据可能驻留在数据库表中,也可能在 aspx 页面中作为静态字。我搜索谷歌,发现 lucene.net 可能适合站点搜索功能。但我从不使用 lucene.net,所以我不知道如何创建 lucene.net 索引文件。我想在我的网站上开发 2 个实用程序,例如

1) 用于创建和更新从数据库表和物理 aspx 文件读取数据的索引文件。 2) 针对索引文件搜索多个单个或多个关键字的实用程序。

我发现了一些我只是不明白的代码sn-p

string indexFileLocation = @"C:\Index";
    string stopWordsLocation = @"C:\Stopwords.txt";
    var directory = FSDirectory.Open(new DirectoryInfo(indexFileLocation));
    Analyzer analyzer = new StandardAnalyzer(
        Lucene.Net.Util.Version.LUCENE_29, new FileInfo(stopWordsLocation));

什么是 Lucene.Net.Util.Version.LUCENE_29 什么是 stopWordsLocation 数据需要如何存储在 Stopwords.txt 中

但没有开发上述2个实用程序的概念。所以请指导我如何使用 lucene.net 搜索我的数据库以及 aspx 文件....如果有人在这里讨论一些示例代码,我会很高兴。谢谢

【问题讨论】:

    标签: asp.net lucene.net


    【解决方案1】:

    Lucene.Net.Util.Version.LUCENE_29 只是表示您正在使用的 Lucene 版本,您应该始终在新代码中使用最新的。如果您使用更改 StandardAnalyzer 的版本升级 Lucene,但您不想重新索引所有数据,则它可以向后兼容。

    stopWordsLocation 是包含您的停用词(您不想索引的词)的文件的位置。

    IE:它,他,她,那个,或者,等等……

    它是一个普通的文本文件,每行应该包含 1 个停用词,并用换行符分隔每一行。

    http://lucene.apache.org/core/old_versioned_docs/versions/3_0_1/api/all/org/apache/lucene/analysis/WordlistLoader.html#getWordSet(java.io.Reader)

    【讨论】:

    • 如何重建 lucene.net 索引。有什么办法可以删除所有索引并重新创建。如果遮住一些光。谢谢
    • 如果在 IndexWriter 的 create 参数中指定 true,它将在索引之前擦除索引。删除索引就像删除目录中的所有文件一样简单
    猜你喜欢
    • 1970-01-01
    • 2010-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多