Lucene可以给一个query中的每个词赋予不同的权重吗?比方说我现在我现在有两个词典分别是,java(内容是java
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Lucene可以给一个query中的每个词赋予不同的权重吗?比方说我现在我现在有两个词典分别是,java(内容是java相关的知识,希望对你有一定的参考价值。
的类),c++(内容是c++的类),有一篇文章我想知道它讲的是关于java的还是关于C++,这个时候我是否可以对特定的词设定权重以区分这篇文章呢?对特定的term设定,而不是对filed设定权值。
参考技术A 权重一般是用来排名的呀,可以给Document 和 Field 增加权重(Boost),使其在搜索结果排名更加靠前如果只是想用来区分文章,建议还是建立一个Filed存储是属于java还是c++,比如:
Field field = new Field("bookType", "java", Field.Store.YES, Field.Index.UN_TOKENIZED);
Field field = new Field("bookType", "c++", Field.Store.YES, Field.Index.UN_TOKENIZED);
这样以后可以按照bookType作为查询条件
Lucene全文检索
流程图
一.创建文档
文档域
注: 每一个Doucment可以有多个field,不同的Document可以有不同的field,同一个Document可以有相同的field(域名和域值都相同)
每一个文档都有唯一的编号
二.分析文档
将文档中的大写转化成小写,清除 is a 标点 停用词等过程生成语汇单元,每一个单词叫一个Term,不同的域中拆分出来的的单词是不同的term file_name 和file_content中的相同单词属于不同的域,
term key:域 value: spring只有key和value相同的才是一个东西
三.创建索引
以上是关于Lucene可以给一个query中的每个词赋予不同的权重吗?比方说我现在我现在有两个词典分别是,java(内容是java的主要内容,如果未能解决你的问题,请参考以下文章