- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
这是代码:
public int docsContainTerm(Term tm) throws IOException {
TermDocs termDocs = indexReader.termDocs(tm);
//DocsEnum termDocs = indexReader.
int count = 0;
while (termDocs.next()) {
if (indexReader.docFreq(tm) != 0) {
count++;
}
}
return count;
}
public int tf(Term tm, String docName) throws IOException {
TermDocs termDocs = indexReader.termDocs(tm);
while (termDocs.next()) {
Document doc = indexReader.document(termDocs.doc());
if (doc.get("filename").equals(docName)) {
return termDocs.freq();
}
}
return 0;
}
public static void main(String[] args) throws CorruptIndexException, IOException {
String indexDir = "indexDir";
String docs = "docs";
String query = "KENNEDY ADMINISTRATION PRESSURE ON NGO DINH DIEM TO STOP SUPPRESSING THE BUDDHISTS";
Directory dir = FSDirectory.open(new File(indexDir));
IndexReader indexReader = IndexReader.open(dir);
BM25 bm25 = new BM25(indexReader, docs);
System.out.println(bm25.getContent("171"));
System.out.println(bm25.htmlGetContent("171", query.toLowerCase()));
}
}
我搜索了一些相关内容,有人说我应该将 TermDocs 更改为 DocsEnum,但我不知道如何更改。这是错误:线程“main”java.lang.Error 中出现异常: Unresolved 编译问题:
at BM25.main(BM25.java:269)
最佳答案
来自Apache Lucene Migration Guide ,
术语现在本质上是二进制的(任意 byte[]),由 BytesRef 类表示(它提供了现有 byte[] 中的偏移量 + 长度“切片”)。
字段是根据每个字段中的术语 (TermEnum) 单独枚举的 (Fields.iterator())。
TermDocs 已重命名为 DocsEnum。
TermPositions 已重命名为 DocsAndPositionsEnum,并且不再扩展仅文档枚举器 (DocsEnum)。
已删除的文档不再从文档/位置枚举中隐式过滤。相反,在获取枚举时,您传递一个 BitsskipDocs(设置的位被跳过)。此外,您现在可以向读者询问其已删除的文档。
文档/位置枚举无法查找术语。相反,TermsEnum 能够进行查找,然后您可以从该TermsEnum 请求文档/职位枚举。
TermsEnum 的查找方法返回更多信息。
TermsEnum 有一个 ord() 方法,返回未定位到的术语的长数字序数(即第一项是 0,下一项是 1,依此类推)。还有相应的seek(long ord)方法。请注意,这些方法是可选的;特别是 MultiFieldsTermEnum 没有实现它们。
获取枚举的方式已更改。主要入口点是 Fields 类。 DocsAndPositionsEnum 也是如此。
关于java - 如何将lucene36转移到lucene 40,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22615627/
如果我将我的个人 repo 转移到一个组织(由我创建),我将失去所有 见解 例如来自原始 Repo 的流量历史记录、拉取请求、贡献者、 fork 等? 最佳答案 拉取请求被保留:参见“About re
如何为解析 if-then[-else] 案例制定正确的规则?这是一些语法: { module TestGram (tparse) where } %tokentype { String }
如何为解析 if-then[-else] 案例制定正确的规则?这是一些语法: { module TestGram (tparse) where } %tokentype { String }
我读过有关mutex的信息,这些信息由线程拥有,并且只能由拥有的线程使用。在this answer中,该解决方案建议每个进程在发出互斥信号之前,必须拥有互斥锁的所有权。我必须在这里承认自己的愚蠢,不知
我只能从回调函数之一中想到 curl_close() 。 但是 php 抛出了一个警告: PHP 警告:curl_close():尝试从回调中关闭 cURL 句柄。 任何想法如何做到这一点? 最佳答案
带有冲突的语法的精简版本: body: variable_list function_list; variable_list: variable_list variable | /* empty
我创建了新的开发者帐户,然后将应用程序转移到新帐户。然后我在新帐户下创建了相同的标识符。并构建App并上传到AppStore。 I have got the warning with WARNING
我想像这样管理类主任的所有 Activity : 此外所有 Activity 都扩展基本 Activity 以使用公共(public) View 。 在这种情况下,我想处理传输 Activity ,例
使用 C 中的简单链表实现,我如何告诉 Splint 我正在转让 data 的所有权? typedef struct { void* data; /*@null@*/ void* ne
请参阅以下 yacc 代码。如果我删除生产因素:'!' expr,解析冲突消失。这里发生了什么? %{ #include #include %} %token TRUE %token FALSE
是否可以将 props 向下传输到子组件,其中 { ..this.props } 用于更简洁的语法,但是排除某些 props,如 className 或 id? 最佳答案 您可以使用解构来完成这项工作
如果我有以下数据框: date A B M S 20150101 8 7 7.5 0 20150101 10 9 9
我需要将一个 __m128i 变量(比如 v)移动 m 位,以便位移动所有变量(因此,结果变量表示 v*2^m)。执行此操作的最佳方法是什么?! 请注意 _mm_slli_epi64 分别移动 v0
我需要这样调用我的程序: ./program hello -r foo bar 我从 argv[1] 中打招呼,但我在使用值 bar 时遇到问题,我是否也应该将“r:”更改为其他内容? while((
我是新来的 Bison我在转换/减少冲突方面遇到了麻烦...我正在尝试从文件加载到 array data[] : struct _data { char name[50]; char sur
当然有很多关于解决移位/归约错误的文档和方法。 Bison 文档建议正确的解决方案通常是%期待它们并处理它。 当你遇到这样的事情时: S: S 'b' S | 't' 您可以像这样轻松解决它们: S:
我有以下(大量精简的)快乐语法 %token '{' { Langle } '}' { Rangle } '..' { DotDot } '::' { ColonC
我的 Bison 解析器中有很多错误,即使它运行良好,我也想了解这些冲突。代码如下: 词法分析器: id ([[:alpha:]]|_)([[:alnum:]]|_)* %% {id
在我的项目中,我有这样的情况,一个 Activity 应该将值(value)转移到另一个 Activity 。并且根据这个值应该选择需要的菜单元素。我试图在 bundle 的帮助下做到这一点,但我不知
我一直在阅读 NSIndexPaths 以获得 uitableviews 等。但是我很难操纵现有的索引路径。 我想在保留行的同时采用现有的索引路径递增/移动每个部分。因此 indexPath.sect
我是一名优秀的程序员,十分优秀!