(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表示多字段搜索