Cum pot obține interogare NHibernate.Search FT pentru a utiliza un stil de interogare "text liber"?

Încerc să implementez o opțiune de căutare text utilizând motorul de căutare cu text integral de la Lucene, în proiectul meu NHibernate MVC (NHibernate.Search). Toată documentația pe care am văzut-o despre cum se face acest lucru sugerează că trebuie să mă uit la anumite coloane pentru valori, cum ar fi:

            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();
                }
            }

Aș prefera să vă uit la toate coloanele indexate cu text întreg pentru șirul de căutare, cum se poate face în SQL cu un wildcard pe funcția FREETEXT ... așa că aș putea să fac ceva de genul:

            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();
                }
            }

... și aceasta va examina toate proprietățile indexate integral pentru textul "Ford" și va returna toate accesările. Există o funcție/metodă/sintaxă comparabilă pentru aceasta folosind motorul de căutare bazat pe NHibernate?

1

1 răspunsuri

Take a look at How to incorporate multiple fields in QueryParser?

Răspuns scurt, schimbare:

var query = "Title:Ford";

la:

var query = "Title:Ford OR Name:Ford OR Field1:Ford OR Field2:Ford";//etc for all fields
1
adăugat
Am folosit chestiunea de interogare multiplă pe care ați menționat-o; era exact ceea ce căutam și funcționa ca un campion. Mulțumiri!
adăugat autor Jeremy Holovacs, sursa