首页 > 代码库 > lucene总结——(十七)

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
































lucene总结——(十七)