Lucene Orchard搜索具有相同术语的多个字段

Lucene Orchard搜索具有相同术语的多个字段,lucene,content-management-system,orchardcms,Lucene,Content Management System,Orchardcms,我正在尝试基于Orchard.search创建一个自定义搜索模块。我已经创建了一个名为keywords的自定义字段,并成功地将其添加到索引中。我想匹配标题、正文或关键字匹配的内容。使用.WithField添加这些字段,或者为与术语匹配的每个字段传递字段字符串数组测试,如果任何字段中存在匹配项,我需要这些字段返回内容。下面我列举了我如何使用这两种方法的例子 我如何使用搜索生成器的示例: var searchBuilder = Search() .WithField("type", "Cel

我正在尝试基于Orchard.search创建一个自定义搜索模块。我已经创建了一个名为keywords的自定义字段,并成功地将其添加到索引中。我想匹配标题、正文或关键字匹配的内容。使用.WithField添加这些字段,或者为与术语匹配的每个字段传递字段字符串数组测试,如果任何字段中存在匹配项,我需要这些字段返回内容。下面我列举了我如何使用这两种方法的例子

我如何使用搜索生成器的示例:

var searchBuilder = Search()
    .WithField("type", "Cell").Mandatory().ExactMatch()
    .WithField("body", query)
    .WithField("title", query);
    .WithField("cell-keywords", query);


String Array FieldNames:
   string[] searchFields = new string[2] { "body", "title", "cell-keywords"};
            var searchBuilder = Search().WithField("type", "Cell").Mandatory().ExactMatch().Parse(searchFields, query, false);

如果有人能给我指出正确的方向,那就太棒了:

一位同事在他的博客上写了一篇文章,应该会很有帮助

我已经解决了我的问题


问题是当我在零件处理程序的索引中添加关键字字段时。有空的内容项导致了我错过的错误

谢谢Hazza,我已经浏览了那篇文章的来源,但我仍然看不到一个如何检查的方法,让搜索针对每个字段单独检查术语。你有什么想法吗?