在Lucene中获取词干单词

在Lucene中获取词干单词,lucene,snowballanalyzer,Lucene,Snowballanalyzer,在Lucene中,我使用SnowBallaAnalyzer进行索引和搜索 构建索引后,我会对索引进行查询。例如,我对字段“body”进行“specialized”查询。 IndexSearcher返回包含“specialize、specialized等”的文档,因为SnowBallaAnalyzer完成了词干分析 现在,有了顶级文档,我想从body字段中获取一个文本片段。此截取的内容应包含查询词的词干版本。 例如,其中一份返回的文件中有“身体”字段:“不幸的是,在一些州,盲人只能进入为各种残疾人

在Lucene中,我使用SnowBallaAnalyzer进行索引和搜索

构建索引后,我会对索引进行查询。例如,我对字段“body”进行“specialized”查询。 IndexSearcher返回包含“specialize、specialized等”的文档,因为SnowBallaAnalyzer完成了词干分析

现在,有了顶级文档,我想从body字段中获取一个文本片段。此截取的内容应包含查询词的词干版本。
例如,其中一份返回的文件中有“身体”字段:“不幸的是,在一些州,盲人只能进入为各种残疾人士提供服务的一般康复机构。在这些情况下,视力受损人士并不总能获得专门服务。” 然后,我希望将“在这些情况下,可视化的专门服务”部分作为代码片段。 另外,我想从这个片段中得到一些术语。代码,但带有一个标记为“?”的字符,我有一个问题:

我多么想这样做
IndexReader ir=IndexReader.open(fsDir)
TermPositionVector tv=(TermPositionVector)ir.getTermFreqVector(hits.scoreDocs[i].doc,“body”)

?-这里:query-query必须是术语。那么如果真正的疑问 如果是“专门化”的,那么查询应该是专门化的,就像滚雪球分析器通常做的那样。由于查询可以包含一个短语:“专用机器”,因此如何获得分析器针对单个单词或短语分析的术语

intidx=tv.indexOf(查询)
int[]idxs=tv.getTermPositions(idx)
对于(字符串t:tv.getTerms()){
int iidx=tv.indexOf(t);
int[]iidxs=tv.getTermPositions(iidx);
对于(int-ni:idxs){
tmpValue=0.0f;
对于(int nni:iidxs){

如果(Math.abs(nni-ni)我相信你在混合几个问题。 首先,要查看查询的词干版本和其他有用信息,可以使用IndexSearcher的explain()方法。请参阅


获取代码片段的Lucene解决方案是。另一个选项是。我相信您可以自定义这两个选项,以获取词干术语而不是完整术语。

我相信您混合了几个问题。 首先,要查看查询的词干版本和其他有用信息,可以使用IndexSearcher的explain()方法。请参阅


Lucene获取代码片段的解决方案是。另一个选项是。我相信您可以自定义这两个选项以获取词干术语,而不是完整术语。

Thx供您回复。请参阅我的帖子更新以查看获取词干术语的方法。Thx供您回复。请参阅我的帖子更新以查看获取词干术语的方法。