0

我正在尝试向我的网站(ASP.NET MVC 2)添加一个搜索字段,并被告知使用 Nhibernate.Search 是个好主意,因为我已经在项目的其余部分中使用了 Nhibernate。

无论如何,我遵循了一个coulpe教程,即this one,以及该站点上的一些问答,但最终它没有建立索引,搜索结果为空。

我知道这个问题可能有点含糊,但奇怪的是,即使我做了所有被告知的事情,也没有任何效果。

好吧,几乎所有东西。在某个时候,在其中一个教程中,它告诉我输入:

using (IFullTextSession s = Search.CreateFullTextSession(sf.OpenSession(new SearchInterceptor()))) {

        QueryParser qp = new QueryParser("id", new StopAnalyzer());

        IQuery NHQuery = s.CreateFullTextQuery(qp.Parse("Summary:series"), typeof(Book));

        IList result = NHQuery.List();

        Debug.Assert(result.Count == 2);
}

这不起作用,因为 SearchInterceptor 在任何地方都不存在......

我在这里错过了什么吗?有没有办法更好地编写搜索查询?它在我的应用程序的哪个部分构建索引?

提前致谢。

4

1 回答 1

0

我试过类似的东西:

public bool LuceneIndexAllVideos()
    {
        var s = NHibernate.Search.Search.CreateFullTextSession(Session);

        foreach (Video video in Videos)
        {
            s.Index(video);
        }
        return true;
    }

但是很慢,但它似乎工作得很好......请参阅: https ://stackoverflow.com/questions/6989125/lucene-net-nhibernate-updating-lucene-index-from-existing-data

于 2011-08-09T18:19:08.227 回答