gpt4 book ai didi

c# - Lucene.net - 如何从每场比赛中提取一小段文本?

转载 作者:行者123 更新时间:2023-11-30 17:03:50 25 4
gpt4 key购买 nike

http://quranx.com/Search?q=oh+people+of+heaven&context=Quran

谁能告诉我如何更改以下代码以显示每个匹配结果的文本片段?我试过阅读示例等,但只能找到更新版本的 Lucene for Java 的相关信息。 Lucene 对我来说就像是一个魔法黑匣子。

public static IEnumerable<SearchResult> Search(
string queryString,
out int totalResults,
int maxResults = 100)
{
totalResults = 0;
if (string.IsNullOrEmpty(queryString))
return new List<SearchResult>();

var query = new MultiFieldQueryParser(
Lucene.Net.Util.Version.LUCENE_30,
new string[] { "Body", "SecondaryReferences" },
Analyzer
).Parse(queryString);

var indexReader = DirectoryReader.Open(
directory: Index,
readOnly: true);
var indexSearcher = new IndexSearcher(indexReader);
var resultsCollector = TopScoreDocCollector.Create(
numHits: maxResults,
docsScoredInOrder: true
);
indexSearcher.Search(
query: query,
results: resultsCollector
);
totalResults = resultsCollector.TotalHits;
var result = new List<SearchResult>();
foreach (var scoreDoc in resultsCollector.TopDocs().ScoreDocs)
{
var snippets = new List<SearchResultSnippet>();
var doc = indexSearcher.Doc(scoreDoc.Doc);
var searchResult = new SearchResult(
type: doc.Get("Type"),
id: doc.Get("ID"),
snippets: snippets
);
result.Add(searchResult);
}
return result;
}

最佳答案

为了能够访问与匹配项相邻的文本,您需要在索引时存储带有位置和偏移信息的 TermVectors,然后您可以使用它来检索周围的词。

参见 http://searchhub.org/2009/05/26/accessing-words-around-a-positional-match-in-lucene/以获得详细的解释。

关于c# - Lucene.net - 如何从每场比赛中提取一小段文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18164395/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com