我正在寻找一种使用Apache Lucene编写自定义索引的方法(准确地说是PyLucene,但Java回答很好).

我要执行的操作如下:将文档添加到索引时,Lucene会将其标记化,删除停用词等.如果我没有记错的话,通常使用分析器来完成.

我要实现的是以下内容:在Lucene存储给定术语之前,我想执行查找(例如,在词典中)以检查是否保留该术语或将其丢弃(如果该术语存在于我的词典中) ,则保留它,否则将其丢弃).

我应该如何进行?

这是(在Python中)我对Analyzer的自定义实现:

class CustomAnalyzer(PythonAnalyzer):

def createComponents(self, fieldName, reader):

source = StandardTokenizer(Version.LUCENE_4_10_1, reader)

filter = StandardFilter(Version.LUCENE_4_10_1, source)

filter = LowerCaseFilter(Version.LUCENE_4_10_1, filter)

filter = StopFilter(Version.LUCENE_4_10_1, filter,

StopAnalyzer.ENGLISH_STOP_WORDS_SET)

ts = tokenStream.getTokenStream()

token = ts.addAttribute(CharTermAttribute.class_)

offset = ts.addAttribute(OffsetAttribute.class_)

ts.reset()

while ts.incrementToken():

startOffset = offset.startOffset()

endOffset = offset.endOffset()

term = token.toString()

# accept or reject term

ts.end()

ts.close()

# How to store the terms in the index now ?

return ????

预先感谢您的指导!

编辑1:在研究Lucene的文档后,我发现它与TokenStreamComponents有关.它返回一个TokenStream,您可以使用它遍历索引字段的Token列表.

现在,有些与我不了解的属性有关.或更准确地说,我可以读取令牌,但不知道之后该如何处理.

编辑2:我发现这个post,他们提到了CharTermAttribute的使用.但是(尽管在Python中)我无法访问或获取CharTermAttribute.有什么想法吗 ?

EDIT3:我现在可以访问每个术语,请参阅更新代码片段.现在剩下要做的实际上是存储所需的条件…

pylucene构建索引_java-Apache Lucene:建立索引时如何使用TokenSt...相关推荐

  1. 建立索引lucene_用Lucene建立搜索索引

    建立索引lucene 本文是我们名为" Apache Lucene基础知识 "的学院课程的一部分. 在本课程中,您将了解Lucene. 您将了解为什么这样的库很重要,然后了解Luc ...

  2. elsearch mysql实时索引_MySQL和Lucene(Elasticsearch)索引对比分析

    MySQL和Lucene都可以对数据构建索引并通过索引查询数据,一个是关系型数据库,一个是构建搜索引擎(Solr.ElasticSearch)的核心类库.两者的索引(index)有什么区别呢?以前写过 ...

  3. MySQL索引介绍,普通索引,全文索引,空间索引,多列索引使用原则,建立索引常用的规则

    转自:https://blog.csdn.net/tomorrow_fine/article/details/78337735 1.MySQL在创建数据表的时候创建索引 在MySQL中创建表的时候,可 ...

  4. mysql 建索引_mysql数据库正确建立索引及使用

    普通mysql运行,数据量和访问量不大的话,是足够快的,但是当数据量和访问量剧增的时候,那么就会明显发现MySQL很慢,甚至down掉,那么就要考虑优化我们的mysql了.其中优化mysql的一个重要 ...

  5. mysql删除索引很慢_mysql建立索引删除索引很慢的解决_MySQL

    bitsCN.com mysql建立索引删除索引很慢的解决 目前情况 建立索引非常慢,需8分钟... 目前环境: ---------------- table行: 30W 版本5.0.45-commu ...

  6. mysql字符串索引如何排序_MySQL 建立索引的时候如何排序?

    以下回复可能有需要更正的地方 "表引擎在 innodb 的情况下建立 age.sex 的联合索引即可,innodb 会在建立索引时生成 btree 数据结构,这个数据结构上会隐式的加上主键& ...

  7. mysql 建复合索引_关于mysql建立索引 复合索引 索引类型

    这两天有个非常强烈的感觉就是自己在一些特别的情况下还是hold不住,脑子easy放空或者说一下子不知道怎么去分析问题了,比方,问"hash和btree索引的差别",这非常难吗.仅仅 ...

  8. java 建立索引_java中怎么创建索引

    java中创建索引的方法:首先把对象转换为JSON字符串:然后把json文档写入索引:最后使用Java代码新建一个Java项目,在其中写好创建索引代码调用就可以了. 索引是与表或视图关联的磁盘上结构, ...

  9. Lucene.Net---1索引的建立

    转载地址:http://blog.csdn.net/xuezhongsong/article/details/4388241 在建立索引前,先了解下lucene中的一些与索引相关的重要类. 为了对文档 ...

  10. MySQL索引优化:索引失效以及不适合建立索引的场景

    引言: 索引是有双面性的,合理的建立索引可以提高数据库的效率.但是如果没有合理的构建索引和使用索引,可能会导致索引失效或者影响数据库性能,本文主要讨论的是索引失效以及不适合建立索引的场景 结论:具体案 ...

最新文章

  1. MySQL 表中添加 时间戳 字段
  2. Antd Vue range-picker 日期初始值设置 与 重置日期踩坑总结
  3. 速领:1024大礼包
  4. Android动态赋权限,安卓6.0以上动态添加权限超简单模板
  5. 前端学习(623):交换两个变量的值
  6. 新入职了一个卷王,一来就把性能提升4倍,这谁受的了~
  7. Windows Restart Manager 重启管理器
  8. 国内学者新研究:中医AI登场,自动开出药方
  9. 赛门铁克调研发现越来越多的物联网设备被用于实施DDoS攻击
  10. H.264中整数DCT变换,量化,反量化,反DCT究竟是如何实现的?(无代码,无真相)
  11. 使用lex与yacc词法语法工具进行简单的SQL语义检查
  12. 北京内推 | 启元世界招聘虚拟人算法工程师/实习生
  13. 轻量级Kubernetes k3s初探
  14. [初学笔记] tic toc 计算程序运行时间
  15. git报错:remote: error: hook declined to update refs/heads/master
  16. 面包机面包/蛋糕配方
  17. 获取当前时间,包括农历时间
  18. 前后端分离实现在线音乐网站-springboot+vue
  19. 自学编程系列——4 Numpy数组
  20. 华为究竟做了多少芯片?

热门文章

  1. java8压缩,如何使用Java 8压缩多个列表?
  2. chrome js 读取文件夹_使用JavaScript遍历本地文件夹的文件
  3. typescript 怎么表示当前时间减一个月_TypeScript类型元编程:实现8位数的算术运算...
  4. 2021-07-01 和的平方与平方的和
  5. 报错 findMergedAnnotation activemq
  6. 1.1.3 以Self Host方式寄宿Web API
  7. Jquery中$.get(),$.post(),$.ajax(),$.getJSON()的用法总结
  8. python-类知识点简介
  9. Erlang --- 基本概念
  10. 在执行方法和Web资源中获取传递过来参数的值