繁体   English   中英

如何获得NHibernate.Search FT查询以使用“自由文本”查询样式?

[英]How can I get NHibernate.Search FT query to use a “free text” query style?

我正在尝试在基于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();
                }
            }

我宁愿查看搜索字符串的所有全文索引列,就像您可以在SQL中使用FREETEXT函数上的通配符进行操作一样...这样,我可以执行以下操作:

            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的搜索引擎,是否具有可比的功能/方法/语法?

看一下如何在QueryParser中合并多个字段?

简短答案,更改:

var query = "Title:Ford";

至:

var query = "Title:Ford OR Name:Ford OR Field1:Ford OR Field2:Ford"; // etc for all fields

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM