搜索Lucene的各个领域

时间:2010-07-21 00:57:47

标签: c# lucene.net

我对Lucene来说是一个完全无聊的人,到目前为止,他是一个巨大的粉丝。

我现在正在寻找一些有关如何存储数据和通过c#和dotnet搜索的资源。任何LINQ样本对我来说都是一个很大的好处。

特别是如果我有一个文档有两个字段定义为标题和描述,我如何在两个字段中搜索?

在下面的示例中,我想搜索标题和说明字段。

例如:

        doc = new Document();
        text = "Oven leek pie";
        doc.Add(new Field("title", text, Field.Store.YES, Field.Index.TOKENIZED));
        doc.Add(new Field("instructions", "Bake for 40 minutes", Field.Store.YES, Field.Index.TOKENIZED));
        iwriter.AddDocument(doc);

然后;

        // Parse a simple query that searches for "text":
        Lucene.Net.QueryParsers.QueryParser parser = new QueryParser("title", analyzer);

        Query query = parser.Parse("baked bacon and leek pizza");

2 个答案:

答案 0 :(得分:10)

string[] fields = new string[2];
fields[0] = "title";
fields[1] = "instructions";

Lucene.Net.QueryParsers.MultiFieldQueryParser multiFieldParser = new MultiFieldQueryParser(fields, analyzer);
Query multiFieldQuery = multiFieldParser.Parse("20");
Hits multiHits = isearcher.Search(multiFieldQuery);

答案 1 :(得分:2)

有许多方法可以搜索Lucene的各个字段。 Sam Doshi在另一个StackOverflow问题的答案中描述了几个: How to incorporate multiple fields in QueryParser?