lucene总结——(十七)
(01)rownum和rowid有何区别?
rownum在表结构中是看不见的,只能在select中明确写出rownum方可显示
rownum与不同的表绑定在一起,每张表都有自已的rownum,每张表的rownum可以相同,表亡rownum亡
rownum可用于oracle分页中
rownum是从1开始的连续不断的数值型
rowid在表结构中是看不见的,只能在select中明确写出rowid方可显示
rowid在每张表中都不一样,表亡rowid亡,它是沟通表与DBF文件的桥梁
rowid可用于索引中
(02)IndexWriter和IndexSearcher有何作用?
IndexWriter将Document对象写入到索引库中,适用于增删改操作
IndexSearcher根据关键字去索引库中查询符合条件的数据,只适用于查询操作
(03)Directory directory = FSDirectory.open(new File("E:/LuceneDBDBDBDBDBDBDBDBDB"));这句话什么意思?
索引库对应的硬盘上的目录,如果无则创建;返之不创建
(04)document.add(new Field("content",article.getContent(),Store.YES,Index.ANALYZED));这句话什么意思?
将content字段和其对应的值,放入到索引库的原始表中,且该字段的值需要进行分词
(05)TopDocs topDocs = indexSearcher.search(query,10);这句话什么意思?
去索引库中查询符合条件的数据,超过10条数据,只取前10条;不足10条,以实际为准
(06)谈谈索引库优化有哪几个方面
>>文件数量问题
>>文件大数问题
>>写入索引库速度问题
(07)分词器有什么作用
用户不可能完全记住所有文章的内容,可能只能记住该文章中的某些关键字,
那么做为搜索功能的程序来讲,就需要用关键字去最大限度搜索到用户需要的
内部,分词器就在中间起了一个桥梁作用
(08)document.get("content")和document.getField("content")有什么区别?
get()获取document对象中content字段的值,返回值是String类型
getField("content")获取document对象中content字段,返回值是Field类型
(09)在默认情况下,搜索结果是如何排序的?如果有二个结果相同,又是如何排序的?
在默认情况下,按得分度的高低排序,如果相同得份,按你插入索引库的先后排序
(10)QueryParser queryParser =
new QueryParser(LuceneUtil.getVersion(),"content",LuceneUtil.getAnalyzer());
QueryParser queryParser =
new MultiFieldQueryParser(LuceneUtil.getVersion(),new String[] {"content","title"},LuceneUtil.getAnalyzer());
有什么区别?
第一个API表示单字段搜索
第二个API表示多字段搜索
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· Obsidian + DeepSeek:免费 AI 助力你的知识管理,让你的笔记飞起来!
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了