Lucene5学习之WildcardQuery使用
学习 使用
2023-09-14 08:59:37 时间
WildcardQuery即通配符查询,即使用通配符来模糊查询,常见的通配符有?,*,-等等,通配符不知道怎么使用的自己Google学习下吧。照例还是先阅读官方的API文档:
特别要注意的Note后面的话,提醒我们注意,WildcardQuery查询是很慢的,因为它需要遍历很多的Term,为了避免极慢的查询速度,请不要使用以星号开头的通配符进行查询。
除了官方给的那点提醒以外,我也要提醒大家一点,WildcardQuery对于用户输入的查询关键字是大小写敏感的,请不要使用大写形式,因为索引中的Term都是小写形式的,这个大家都知道的,特此提醒。
WildcardQuery构造函数除了需要一个Term对象以外,还有一个参数需要设置maxDeterminizedStates,源码注释里是这样解释的:
* Constructs a query for terms matching code term /code . * @param maxDeterminizedStates maximum number of states in the resulting * automata. If the automata would need more than this many states * TooComplextToDeterminizeException is thrown. Higher number require more * space but can process more complex automata. */ public WildcardQuery(Term term, int maxDeterminizedStates) { super(term, toAutomaton(term), maxDeterminizedStates); }
其实就是设置根据通配符支持最大能支持有多少Term情况,Term越多占的硬盘空间越大,但查询也更精确。这个值默认源码里给定的是10000,默认即可。
其他也没什么好说的,WildcardQuery使用难度也不大,照样贴一个使用示例吧:
示例代码的意图就是查询索引文档中包含recursive这个单词的,OK,打完收工了,此时此刻2015-03-24 22:26,该睡觉了。预计接下来要说说的就是SpanQuery了。
如果你还有什么问题请加我Q-Q:7-3-6-0-3-1-3-0-5,
或者加裙一起交流学习!
转载:http://iamyida.iteye.com/blog/2195249
相关文章
- 使用机器学习创建自己的Emojis 表情
- Java基础学习教程,eclipse简单使用教程(Java集成开发工具)
- Flask 学习-67.钩子函数before_request 和 before_first_request 的使用
- Helm包管理工具入门学习及使用
- 【学习笔记】JavaScript
- R语言深度学习知多少
- 安全领域中使用机器学习的注意事项
- 驱动开发学习笔记(4-1)–INF文件-1
- 【答疑解惑第十二讲】windows编程学习框架图
- 深度学习背景下的图像三维重建技术进展综述
- 安全测试工具(AST)学习笔记
- Java基础学习笔记七 Java基础语法之继承和抽象类详解编程语言
- HBase学习之路 (十)HBase表的设计原则详解大数据
- [javascript] Promise简单学习使用详解编程语言
- 双足机器人Cassie使用机器学习完成5公里慢跑
- 提升工作效率,学习Oracle P6培训(p6oracle培训)
- 学习Linux进程:举个例子(linux进程例子)
- 开启Linux系统之旅:学习使用ADB(linuxadb)
- Oracle SQL:学习如何使用CREATE TABLE命令创建表格(oracle创建表命令)
- 快速学习PHP Redis的使用方法(php redis怎么用)
- 孩子,努力学习Redis,拥抱未来(学习redis)
- Oracle PPT下载快速提升学习效率(oracle ppt下载)
- JSON学习之JSONinJavaScript详细使用说明