2

我正在使用Lucene.Net 的 MultiFieldQueryParser在我的文档中搜索多个字段。我想找出找到文本的字段。例如,我的搜索可能如下所示:

var parser = new MultiFieldQueryParser(new string[] {"question","answer"}, analyzer);
var query = parser.Parse(searchphrase);

for(int idx=0; idx<hits.Length() ++idx)
{
     var doc = hits.Doc(i);
     // was this hit found in "answer" or "question"??
}

我想确定是否在答案问题字段中找到了搜索短语

4

2 回答 2

3

唯一的判断方法是存储字段,为每次点击检索它们,然后自己检查它们是否匹配。

在问题中找到的搜索短语的某些术语可能会导致命中,而其余的则在答案中。如果您一起搜索问题和答案,您将无法轻松确定哪个是哪个。

于 2009-05-22T20:28:32.433 回答
1

出于调试目的,您可以使用 Lucene 的explain()方法,它会引导您完成匹配。它与搜索本身一样昂贵,因此对生产不太有利。另请参阅Grant Ingersoll 的 Debugging Relevance Issues in Search 以了解获取此信息的其他方式。

于 2009-05-23T15:27:16.573 回答