C# 如何构造具有多个参数的lucene搜索查询

C# 如何构造具有多个参数的lucene搜索查询,c#,lucene,lucene.net,C#,Lucene,Lucene.net,我是Lucene.net的新手,在这里我想知道如何像sql查询一样进行Lucene搜索查询 我有一组参数值,假设存储过程有一组参数。现在我想用所有这些参数构建一个查询 searchParams.UseLast = Convert.ToBoolean(base.Arguments["UseLast"]); searchParams.LastEditedFrom= Convert.ToDateTime(base.Arguments["LastEditedFrom"])

我是Lucene.net的新手,在这里我想知道如何像sql查询一样进行Lucene搜索查询

我有一组参数值,假设存储过程有一组参数。现在我想用所有这些参数构建一个查询

        searchParams.UseLast = Convert.ToBoolean(base.Arguments["UseLast"]);
        searchParams.LastEditedFrom= Convert.ToDateTime(base.Arguments["LastEditedFrom"]);
        searchParams.LastEditedTo = Convert.ToDateTime(base.Arguments["LastEditedTo"]);
        searchParams.Reviewed = Convert.ToBoolean(base.Arguments["Reviewed"]);
        searchParams.Approved = Convert.ToBoolean(base.Arguments["Approved"]);
        searchParams.Include = Convert.ToBoolean(base.Arguments["Include"]);
        searchParams.IsVisibleToUser = Convert.ToBoolean(base.Arguments["IsVisibleToUser"]);
        searchParams.IsEntry = Convert.ToBoolean(base.Arguments["IsEntry"]);
        searchParams.UserId = Convert.ToInt32(base.Arguments["UserId"]);

        IEnumerable Categories = base.Arguments["Categories"] as IEnumerable;
        IEnumerable Departments = base.Arguments["Departments"] as IEnumerable;

        String mQuery = "How to construct it ....!!!" // Need help in this 

        var query = queryParser.Parse(mQuery);
        indexSearcher.Search(query, collector);

这里我想从lucene索引中获取所有记录,该索引具有上述所有字段的值。

我不清楚您使用的是什么
searchParams
,但是一般来说,在这种情况下,您可以使用lucene查询语法的任何功能来构造查询字符串(
mQuery
)。这里是Lucene.Net 4.8版文档的链接

通常,当查询中列出多个单词时,它们将被逻辑OR处理,但包含所有术语的文档匹配项的排名高于仅包含一个术语的文档。例如,
white dog
将匹配包含
white dog
white
dog
的文档。如果您只想要匹配所有术语的文档,则可以在语句中添加
,例如,如果您只想要包含所有三个术语的文档,则可以说
small and white and dog

要指定要搜索的特定字段,请列出字段名,后跟冒号。例如,您可以搜索
UserId:ron和Categories:dogs
。Lucene查询语法还有很多内容,但希望您能从中开始。有关更多详细信息,请参阅我提到的Lucene查询语法文档