如何从 Lucene TokenStream 获取 Token?

2023-11-22

我正在尝试使用 Apache Lucene 进行标记化,但我对从某个地方获取标记的过程感到困惑TokenStream.

最糟糕的是我正在查看 JavaDocs 中解决我的问题的评论。

http://lucene.apache.org/java/3_0_1/api/core/org/apache/lucene/analysis/TokenStream.html#incrementToken%28%29

不知何故,一个AttributeSource应该使用,而不是Tokens。我完全不知所措。

谁能解释如何从 TokenStream 获取类似令牌的信息?


是的,这有点复杂(与好的方式相比),但这应该可以做到:

TokenStream tokenStream = analyzer.tokenStream(fieldName, reader);
OffsetAttribute offsetAttribute = tokenStream.getAttribute(OffsetAttribute.class);
TermAttribute termAttribute = tokenStream.getAttribute(TermAttribute.class);

while (tokenStream.incrementToken()) {
    int startOffset = offsetAttribute.startOffset();
    int endOffset = offsetAttribute.endOffset();
    String term = termAttribute.term();
}

编辑:new way

根据多诺泰罗的说法,TermAttribute已被弃用,取而代之的是CharTermAttribute。根据 jpountz (和 Lucene 的文档),addAttributegetAttribute.

TokenStream tokenStream = analyzer.tokenStream(fieldName, reader);
OffsetAttribute offsetAttribute = tokenStream.addAttribute(OffsetAttribute.class);
CharTermAttribute charTermAttribute = tokenStream.addAttribute(CharTermAttribute.class);

tokenStream.reset();
while (tokenStream.incrementToken()) {
    int startOffset = offsetAttribute.startOffset();
    int endOffset = offsetAttribute.endOffset();
    String term = charTermAttribute.toString();
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从 Lucene TokenStream 获取 Token? 的相关文章

随机推荐

  • python 获取调用函数的当前变量

    def foo a 1 b 2 dir prints a b bar der bar foo pointer print dir foo pointer should print a b 我试图使用bar sys modules name
  • Matplotlib 动画在 PyCharm 中不起作用

    我发现了各种使用 matplotlib 生成动画的短文件 一般来说 它们在从命令行运行时工作正常 但在 PyCharm 中我只能得到一个静止帧 我问同样的问题Matplotlib 在 IDE PyCharm 中使用时不会更新绘图 那里发布了
  • WPF - FlowDocument - 将表拉伸到整个宽度?

    我有一个包含任意数量的列和行的数据表 我正在尝试打印它们 到目前为止 我所拥有的最好的运气是将数据放入表中 然后将该表添加到 FlowDocument 中 到目前为止 一切都很好 我现在遇到的问题是表格只 想要 占据文档宽度的大约一半 我已
  • C语言中变量名是如何存储的?

    我想问C中的变量是如何存储在C中的 为了更清楚 请考虑以下代码 int main int a 1 b b a 2 return 0 例如 这里的内存 C 存储变量位置的名称 eg if a 0x12A7 认为 b 0x123B1 那么如何以
  • 将文件转换为 Base64 函数输出

    Public Function ConvertFileToBase64 ByVal fileName As String As String Dim ReturnValue As String If My Computer FileSyst
  • 如何清除 pyqt QTableWidget?

    我想清除我的 QTableWidget 首先 我在 qcombobox 中选择一个用户 然后单击 qpushbutton 并从数据库记录中填充它 当我选择其他用户并单击 qpushbutton 添加数据时 我尝试使用以下方法清除 self
  • 裁剪 UIImage

    我有一些调整图像大小的代码 这样我就可以获得图像中心的缩放块 我用它来拍摄UIImage并返回图像的小方形表示 类似于照片应用程序的相册视图中看到的内容 我知道我可以使用UIImageView并调整裁剪模式以达到相同的结果 但这些图像有时会
  • 在主线程中运行代码

    这与许多问题相似 但不是rly 我需要类似的东西BeginInvoke适用于 Winforms 但不仅仅适用于 winforms 所以我需要单一方法 适用于任何类型的应用程序 所以我打电话 void ExecuteInMainContext
  • cpp 空数组声明

    你好 我有以下测试代码 我对 cpp 感到困惑 如果你在library h中声明一个带有空元素子句的数组 编译器会选择什么 它也没有抱怨 我使用 Cygwin 在library cpp中 我将值分配给两个元素 编译器是否假设一个包含一个元素
  • Nullable DateTimes 和 AddDays() 扩展

    我有一个日期时间变量 可以为 null 或日期时间 我认为可以为 null 的 DateTime 类型可以工作 但我收到一条错误消息 告诉我说 Nullable
  • 为整个应用程序应用圆角

    如何实现应用于整个视图的圆角 如屏幕截图所示 请注意 导航栏和键盘角都是圆角的 我尝试过设置cornerRadius 10 and masksToBounds YES对彼此而言window layer and window rootView
  • Django - 导入错误:没有名为 *.urls 的模块

    我正在努力通过官方 Django 教程并使用 Django 版本 1 6 1 Python 2 7 6 稍微调整以满足我自己的需要 我现在正在映射 URL 但当很明显有一个模块内有一个适当命名的文件时 我总是收到 没有名为customers
  • 使用带有回调函数的 array_filter 删除空数组元素

    我正在尝试使用函数 array filter 删除数组中的空元素 当我使用这样的外部回调时 function callback a return empty a arr array abc ghi res array filter arr
  • 将实时摄像头视图嵌入 UIView 中

    我一直在尝试找出如何在 iPhone 中嵌入一个小型实时摄像头视图UIView无济于事 我什至无法在网上找到任何样本 我知道这是可行的 但我什至不知道从哪里开始 似乎有很多例子表明其他人已将视图添加到相机的完整屏幕视图中 但反之则不然 看起
  • 在 WPF 中制作图表的最佳方法是什么? (或者一般来说这也适用于 WPF)

    所以我正在 WPF 中制作一个软件 我希望能够根据我存储的数据制作图表 只是带有 x 和 y 轴的线图 理想情况下 我希望它们具有优雅 简洁的风格 我知道 WPF 没有附带图表 并且我在 WinForms 项目中尝试过 ZedGraph 但
  • 如何向现有 CSS 类添加新规则

    在下面的代码中 我已经说明了我想要实现的目标 通过向现有 CSS 类添加新规则来更改它 h4 hello h4 这是针对在不同尺寸的屏幕上运行的站点的预处理
  • Fortran 中等级(形状)未知的子例程参数

    我想知道如何在 Fortran 中最好地处理采用未知等级参数的子例程 例如 Real 8 array1 2 2 array2 2 2 3 call mysubroutine array1 call mysubroutine array2 就
  • 如何使用命令提示符运行C程序[关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 如果 c 文件的位置与默认位置不同 如何在安装了代码块
  • 从函数返回未来值

    我最近开始学习 Rust 我不确定如何从应该返回 Result 的函数返回未来值 当我尝试仅返回响应变量并删除结果输出时 出现错误 不能使用 返回的函数中的运算符std string String tokio main async fn d
  • 如何从 Lucene TokenStream 获取 Token?

    我正在尝试使用 Apache Lucene 进行标记化 但我对从某个地方获取标记的过程感到困惑TokenStream 最糟糕的是我正在查看 JavaDocs 中解决我的问题的评论 http lucene apache org java 3