如何使用 span 对象为 spanNearQuery 获取文档中的所有匹配项,我到这里为止,但不确定如何继续
for(int i =0; i < splitwords.length ; i++)
{
sQuery[i] = new SpanTermQuery(new Term(field,splitwords[i]));
}
SpanQuery queryCount = new SpanNearQuery(sQuery, 0, true);
int numspans = 0;
Spans span = queryCount.getSpans(reader);
int docId;
while(span.next())
{
numspans++;
docId = span.doc();
System.out.println(span.end() - span.start());
}
我能否获得当前文档中的所有匹配项(匹配项的数量)?
最佳答案
这将为您提供一个哈希表,其中包含每个文档 ID 的匹配项数:
Hashtable<Integer, Integer> hits = new Hashtable<Integer, Integer>();
while (spans.next() == true)
{
int docID = spans.doc();
int hit = hits.get(docID) != null ? hits.get(docID) : 0;
hit++;
hits.put(docID, hit);
}
关于Java Lucene : Use spans to get number of matches in a document,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5514833/