【问题标题】:Search across fields in Lucene在 Lucene 中跨字段搜索
【发布时间】:2010-07-21 00:57:47
【问题描述】:

我完全是 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");

【问题讨论】:

    标签: c# lucene.net


    【解决方案1】:
    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);
    

    【讨论】:

      【解决方案2】:

      在 Lucene 中有多种跨字段搜索的方法。 Sam Doshi 在对另一个 StackOverflow 问题的回答中描述了几个: How to incorporate multiple fields in QueryParser?

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-12-13
        • 1970-01-01
        • 1970-01-01
        • 2017-01-29
        • 2012-09-24
        • 1970-01-01
        相关资源
        最近更新 更多