1

NHibernate ベースの MVC プロジェクト (NHibernate.Search) で Lucene ベースの全文検索エンジンを使用して、テキスト検索オプションを実装しようとしています。これを行う方法について私が見たすべてのドキュメントは、値の特定の列を調べる必要があることを示唆しています。

            var query = "Title:Ford";
            using (var search = NHibernate.Search.Search.CreateFullTextSession(s))
            {                   
                using (var transaction = s.BeginTransaction())
                {
                    var carSearchResults = search.CreateFullTextQuery(query)
                        .SetMaxResults(5)
                        .List();  
                    foreach(var car in carSearchResults)
                    {
                        Console.WriteLine(car.Title);
                    }
                    transaction.Commit();
                }
            }

FREETEXT関数にワイルドカードを使用してSQLで実行できるように、検索文字列の全文インデックス付き列をすべて調べたいので、次のようにすることができます。

            var query = "Ford";
            using (var search = NHibernate.Search.Search.CreateFullTextSession(s))
            {                   
                using (var transaction = s.BeginTransaction())
                {
                    var carSearchResults = search.CreateFullTextQuery(query)
                        .SetMaxResults(5)
                        .List();  
                    foreach(var car in carSearchResults)
                    {
                        Console.WriteLine(car.Title);
                    }
                    transaction.Commit();
                }
            }

...これにより、"Ford" のすべてのフルテキスト インデックス プロパティが調べられ、すべてのヒットが返されます。NHibernate ベースの検索エンジンを使用して、これに匹敵する関数/メソッド/構文はありますか?

4

1 に答える 1

1

QueryParser に複数のフィールドを組み込む方法をご覧ください

短い答え、変更:

var query = "Title:Ford";

に:

var query = "Title:Ford OR Name:Ford OR Field1:Ford OR Field2:Ford"; // etc for all fields
于 2012-05-31T08:08:44.690 に答える