TermFreqVector lucene.net
我可以按如下类别获取文档:TermFreqVector lucene.net,lucene,lucene.net,Lucene,Lucene.net,我可以按如下类别获取文档: IndexSearcher searcher = new IndexSearcher(dir); Term t = new Term("category", "Feline"); Query query = new TermQuery(t); Hits hits = searcher.Search(query); for (int c =
IndexSearcher searcher = new IndexSearcher(dir);
Term t = new Term("category", "Feline");
Query query = new TermQuery(t);
Hits hits = searcher.Search(query);
for (int c = 0; c < hits.Length(); c++)
{
Document d = hits.Doc(c);
Console.WriteLine(c + " " + d.GetField("category").StringValue());
}
IndexSearcher searcher=newindexsearcher(dir);
术语t=新术语(“类别”、“猫”);
查询=新术语查询(t);
Hits=searcher.Search(查询);
对于(int c=0;c
现在我想获取hits中文档的TermFreqVector。我通常会这样做:
for (int c = 0; c < searcher.MaxDoc(); c++)
{
TermFreqVector TermFreqVector = IndexReader.GetTermFreqVector(c, "content");
String[] terms = TermFreqVector.GetTerms();//get the terms
int[] freqs = TermFreqVector.GetTermFrequencies();//
}
for(int c=0;c
但是,我不确定在我的场景中如何实现这一点(即,仅为hits中的文档获取它们)。这些文档还有一个db pk
谢谢
ChristianIndexReader.GetTermFreqVector(“示例中的c”)的第一个参数是文档编号
hits.id(c)
将返回cth结果的id。所以你会做一些类似的事情:
int Id = hits.id(c);
TermFreqVector TermFreqVector = IndexReader.GetTermFreqVector(Id, "content");
// etc.
(附带说明:Hits类已被弃用;您可能希望使用类似于HitCollector的内容或其他搜索重载。)谢谢。我来看看这个。我正在使用Lucene.Net-可能需要一段时间,直到点击被弃用…@csetzkorn:它在2.9.3中被正式弃用,这就是Lucene.Net所使用的。你是对的,它在3.0之前不会被完全删除。(不管它是否得到官方支持,在任何情况下都是缓慢的。)