我对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");
答案 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?