1.Store.ON存储源文本,可以用在标题、日期等,一般正文的文本是不需要存储的 ,只需指明Index.TOKENIZED就可以了。
2.在建立索引时,Field f2=new Field("content","给我一把椅子我要坐在这里看电影",Field.Store.NO,Field.Index.TOKENIZED,TermVector.YES);注意最后一个参数TermVector.YES用来指定是否存词条向量信息,如果指定了,在检索的时候就可以用IndexReader..getTermFreqVectors(0);来查看第一篇document的词条限量信息(包含,每个词条在本document中出现的频率,位置,偏移量等)。
3.用lucene 2.0建索引应该是不支持分布式的因为lock文件所存储路径是由System.getProperty
("java.io.tmpdir") 详见 FSDirectory.java,如果有多台机器向一台机器上建索引就会出现问题了。
4.文档得分的计算:
可以设置document的boost值,也可以设置field的boost值。field的boost值与document的boost值是相互独立的
,并不相互影响。并且最后计算用到的field的boost是用该field的boost值乘以所在的document的boost值。所
以field的boost值和document的boost值都会对最后的得分产生影响。并且计算好之后最终的boost值是写到索引
文件中的,也就是说boost的计算是在建立索引阶段完成的,此外各个词条所在文档的词频的计算也是在索引阶
段完成的,并写在索引文件中的,而最终该文档的得分,是在搜索阶段依据所搜索的内容,再计算其他的df,
idf等等最后依据公式乘上索引阶段所取得的boost值最后的到对应所搜索的内容的的分。
2.在建立索引时,Field f2=new Field("content","给我一把椅子我要坐在这里看电影",Field.Store.NO,Field.Index.TOKENIZED,TermVector.YES);注意最后一个参数TermVector.YES用来指定是否存词条向量信息,如果指定了,在检索的时候就可以用IndexReader..getTermFreqVectors(0);来查看第一篇document的词条限量信息(包含,每个词条在本document中出现的频率,位置,偏移量等)。
3.用lucene 2.0建索引应该是不支持分布式的因为lock文件所存储路径是由System.getProperty
("java.io.tmpdir") 详见 FSDirectory.java,如果有多台机器向一台机器上建索引就会出现问题了。
4.文档得分的计算:
可以设置document的boost值,也可以设置field的boost值。field的boost值与document的boost值是相互独立的
,并不相互影响。并且最后计算用到的field的boost是用该field的boost值乘以所在的document的boost值。所
以field的boost值和document的boost值都会对最后的得分产生影响。并且计算好之后最终的boost值是写到索引
文件中的,也就是说boost的计算是在建立索引阶段完成的,此外各个词条所在文档的词频的计算也是在索引阶
段完成的,并写在索引文件中的,而最终该文档的得分,是在搜索阶段依据所搜索的内容,再计算其他的df,
idf等等最后依据公式乘上索引阶段所取得的boost值最后的到对应所搜索的内容的的分。