首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >从lucene索引中获取field的标记

从lucene索引中获取field的标记
EN

Stack Overflow用户
提问于 2012-03-19 20:39:38
回答 1查看 2.3K关注 0票数 1

如何从lucene索引中获取用于Field中的Document的令牌(无论是令牌列表、TokenStream还是其他内容)?也就是说,是否可以从索引中获取tokens (从示例中)中使用的标记?(我并不想知道如何从TokenStream中获取令牌)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
doc.add(new Field("title", tokens))

在文档中有Field.tokenStreamValue(),但是当我执行doc.getFieldable(field_name)时,它只返回null

我也尝试过(从lucene - Fieldable.tokenStreamValue()中的第三条评论):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
TokenSources.getTokenStream(reader, doc_id, field_name)

但我得到了

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
java.lang.IllegalArgumentException: title in doc #630does not have any term position data stored
    at org.apache.lucene.search.highlight.TokenSources.getTokenStream(TokenSources.java:256)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-03-20 08:53:10

TokenSources类是一个帮助器类,用于检索文档的标记以进行突出显示。有两种方法可以检索给定文档的术语:

  • 重新分析存储的字段,
  • 读取文档的术语向量。

您想要使用tries to read the document's terms vector的方法,但由于在索引时没有启用术语向量而失败。

因此,您可以在索引时启用术语向量并继续使用此方法(请参阅Field constructorField.TermVector的文档),或者重新分析存储字段的内容。第一种方法可以提供更好的性能,特别是对于较大的字段,而第二种方法将节省空间(如果您的字段已经存储,则不需要存储额外的信息)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9777591

复制
相关文章
Lucene索引数据异常
最近突然发现本站的全文检索功能失效了,在本地进行调试,发现抛出 TokenStream contract violation异常,很奇怪的异常,因为之前本功能是好好的,也没改动,并且我也没使用TokenStream,异常如下:
幽鸿
2020/04/02
7290
Lucene的几点索引建设优化
现如今越来越多的人使用Lucene来开发自己的搜索引擎,在数据量不大的情况下,我们一般不会太关注创建索引的效率,但是,当数据达到一定的数量时候,我们就必须要考虑如何的去提高创建索引的性能,以减少创建索引的时间。
星哥玩云
2022/07/01
3490
快速学习Lucene-Lucene索引库查询
对要搜索的信息创建Query查询对象,Lucene会根据Query查询对象生成最终的查询语法,类似关系数据库Sql语法一样Lucene也有自己的查询语法,
cwl_java
2019/12/25
5420
lucene(全文搜索)_删除索引
项目结构大家可以先看看:lucene(全文搜索)_根据内容建立索引_源码下载 索引的删除操作: 1 /** 2 * 索引的删除 3 */ 4 public void delete() { 5 IndexWriter writer = null; 6 7 try { 8 writer = new IndexWriter(directory, new IndexWriterConfig( 9
Hongten
2018/09/13
9420
lucene(全文搜索)_删除索引
利用Lucene的IndexWriter建立索引(详解)
/*  * 建立索引,然后把建立后的文档添加到索引中去  * 提示先使用Document和Field把Field加入到Document中去,  * 接着把Document建立成为一个索引  * */ package comThree;
星哥玩云
2022/07/04
5550
Lucene索引库的维护和查询
是否分析:是否对域的内容进行分词处理。前提是我们要对域的内容进行查询。 是否索引:将Field分析后的词或整个Field值进行索引,只有索引方可搜索到。 比如:商品名称、商品简介分析后进行索引,订单号、身份证号不用分析但也要索引,这些将来都要作为查询条件。 是否存储:将Field值存储在文档中,存储在文档中的Field才可以从Document中获取 比如:商品名称、订单号,凡是将来要从Document中获取的Field都要存储。
暴躁的程序猿
2022/03/24
5160
java 基于lucene 如何创建index【索引】 索引
/** * 基于lucene 如何创建index【索引】 * @param indexPath 索引文件路径 * @param analyzer 分词器 * @param list 文档对象集合 * @throws Exception */ public static void createIndex(String indexPath,Analyzer analyzer,List<Document> list
爱明依
2019/03/12
7480
Lucene学习总结之三:Lucene的索引文件格式(1)
Lucene的索引里面存了些什么,如何存放的,也即Lucene的索引文件格式,是读懂Lucene源代码的一把钥匙。
Hongten
2018/09/13
9000
Lucene学习总结之三:Lucene的索引文件格式(1)
Lucene学习总结之三:Lucene的索引文件格式(1)
Lucene的索引里面存了些什么,如何存放的,也即Lucene的索引文件格式,是读懂Lucene源代码的一把钥匙。
杉枫
2019/05/25
1.1K0
Lucene的索引系统和搜索过程分析
前言:目前自己在做使用Lucene.net和PanGu分词实现全文检索的工作,不过自己是把别人做好的项目进行迁移。因为项目整体要迁移到ASP.NET Core 2.0版本,而Lucene使用的版本是3.6.0 ,PanGu分词也是对应Lucene3.6.0版本的。不过好在Lucene.net 已经有了Core 2.0版本(4.8.0 bate版),而PanGu分词,目前有人正在做,貌似已经做完,只是还没有测试~,Lucene升级的改变我都会加粗表示。
ShenduCC
2018/07/24
2.3K0
Lucene的索引系统和搜索过程分析
快速学习Lucene-索引库的维护
是否分析:是否对域的内容进行分词处理。前提是我们要对域的内容进行查询。 是否索引:将Field分析后的词或整个Field值进行索引,只有索引方可搜索到。 比如:商品名称、商品简介分析后进行索引,订单号、身份证号不用分析但也要索引,这些将来都要作为查询条件。 是否存储:将Field值存储在文档中,存储在文档中的Field才可以从Document中获取 比如:商品名称、订单号,凡是将来要从Document中获取的Field都要存储。
cwl_java
2019/12/25
6240
影响Lucene索引速度原因以及提高索引速度技巧
在网上看了一篇外文文章,里面介绍了提高Lucene索引速度的技巧,分享给大家。
Java架构师必看
2021/03/22
1.5K0
MySQL中的ORDER BY field
MySQL可以通过field()函数自定义排序,格式:field(value,str1,str2,str3,str4),value与str1、str2、str3、str4比较,返回1、2、3、 4,如遇到null或者不在列表中的数据则返回0. 这个函数好像Oracle中没有专门提供(也可能是我没有用到),不过自己实现这样一个函数还是比较 简单的。
用户7657330
2020/08/14
3.2K0
lucene给文本索引和搜索功能的应用
最近一段时间由于公司需要 ,模糊搜索出相似的关键词,所以直接考虑使用了lucene。
用户5166556
2019/04/16
5790
lucene(全文搜索)_恢复/更新索引操作
项目结构大家可以先看看:lucene(全文搜索)_根据内容建立索引_源码下载 索引的恢复/更新操作 1 /** 2 * 把删除的索引进行恢复操作 3 */ 4 public void recover() { 5 IndexReader reader = null; 6 try { 7 // readOnly默认为true,要把readOnly设置为false 8 reader = I
Hongten
2018/09/13
6950
浅谈Lucene中的DocValues
前言: 在Lucene4.x之后,出现一个重大的特性,就是索引支持DocValues,这对于广大的solr和elasticsearch用户,无疑来说是一个福音,这玩意的出现通过牺牲一定的磁盘空间带来的好处主要有两个: (1)节省内存 (2)对排序,分组和一些聚合操作时能够大大提升性能 下面来详细介绍下DocValue的原理和使用场景 (一)什么是DocValues? DocValues其实是Lucene在构建索引时,会额外建立一个有序的基于document => field value的映射
我是攻城师
2018/05/14
2.8K0
Lucene系列(六)索引格式之fdt文件
fdt文件,以正排的方式, 存储了field的原始真实数据. 也就是说, 你添加到所有中的所有field内容. 都会存储在此文件中.
呼延十
2021/02/02
1.4K0
Lucene系列(六)索引格式之fdt文件
Lucene系列(七)索引格式之fdx文件
在CompressingStoredFieldsWriter类的构造函数中, 初始化了FieldsIndexWriter类的实例, 由它来进行fdx文件的写入,看看他的构造函数.
呼延十
2021/02/02
7030
Lucene系列(七)索引格式之fdx文件
Lucene系列(11)索引格式之pay文件
同样在构造函数中. org.apache.lucene.codecs.lucene84.Lucene84PostingsWriter#Lucene84PostingsWriter.
呼延十
2021/03/15
7910
「Elasticsearch + Lucene」搜索引擎的架构、倒排索引和搜索过程
许多年前,一个名叫Shay Banon的开发者,带着新婚妻子去伦敦生活,在得知妻子想从事厨师工作后,准备利用自己所学为妻子开发一个食谱搜索引擎,他开始使用Lucene的一个早期版本。但是尝试之后,他发现直接使用Lucene给没有任何开发经验的妻子而言是非常困难的,因此Shay 开始对Lucene进行封装。不久他发布了他的第一个基于Lucene的用java编写的开源项目 Compass。后来Shay找到了一份跟高性能和分布式有关的工作,然后发现这份工作对实时、分布式搜索引擎的需求尤为突出,于是他决定重写Compass,把它变为一个独立的服务并取名Elasticsearch,再到后来Elasticsearch发布了第一个公开版本,从此以后,Elasticsearch已经成为了 Github 上最活跃的开源项目之一。据说,Shay的妻子还在等着她的食谱搜索引擎,而他已经在大公司忙的“一发不可收拾”…
一个会写诗的程序员
2020/09/10
1.5K0
「Elasticsearch + Lucene」搜索引擎的架构、倒排索引和搜索过程

相似问题

Lucene :如何从索引中获取LongField

10

作为Zend_Search_Lucene_Field索引的数组

14

Lucene索引字段值从所有html标记中剥离

20

从Lucene 4.0索引中获取最常用的单词

21

不带html css标记的Lucene索引

113
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文