我的文档是文本文件中100家公司的列表。它是在lucene中编入索引的。它不是自己存储,而是保存矢量。名单中的一家公司名为Apple Inc。
在lucene中存储了另一个标题为“Apple Inc”的文档。
我可以使用下面的代码成功完成此搜索。我可以在Lucene中找到该文档,并成功在标题和内容字段上执行搜索以查找类似的文档。
我的问题是,如何修改此代码,以便找到其标题中包含此内容的其他文档。即如何使用Title Apple提交文档。
我想搜索所选文档的内容与特定字段(例如标题);
using (IndexSearcher searcher = new IndexSearcher(_Reader))
{
TermQuery tquery = new TermQuery(new Term("Oid", oid));
TopDocs topdocs = searcher.Search(tquery, 1);
int docId = topdocs.ScoreDocs[0].Doc;
var moreLikeThis = new Lucene.Net.Search.Similar.MoreLikeThis(_Reader);
moreLikeThis.Analyzer = new StandardAnalyzer(Lucene.Net.Util.Version.LUCENE_29);
moreLikeThis.SetFieldNames(fields);
moreLikeThis.MinWordLen = 2;
var query = moreLikeThis.Like(docId);
TopScoreDocCollector collector = TopScoreDocCollector.Create(topCount, true);
searcher.Search(query, collector);
ScoreDoc[] hits = collector.TopDocs().ScoreDocs;
var result = new List<string>();
for (int i = 0; i < hits.Length; i++)
{
docId = hits[i].Doc;
float score = hits[i].Score;
if (score > 0.5)
{
Document doc = searcher.Doc(docId);
result.Add(doc.Get("Oid"));
}
}
return result;
}