高亮器
可以截取一段文本(生成摘要),并且让关键字高亮显示(通过指定前缀与后缀实现,因为是在网页中显示,指定 “<font color=’red’>”,“</font>”,就会在网页中显示为红色)。
相关度
2得分受关键字在文档中出现的位置和次数等影响
3利用boost影响lucene查询结果的排序,通过设置Document的Boost来影响文档的权重.Document.setBoost(float)默认值为1.0f,值越大得分越高
影响相关度的得分
2 Field的boost属性:Field.setBoost(float boost)
3 查询时指定:MultiFieldQueryPaeser(String[]fields.Analyzer analyzer,Map boosts)
按指定字段排序
public Sort(SortField field)
public Sort(SortField[] fields)
过滤器
RangeFilter可以对搜索出来的结果进行过滤
查询对象
TermQuery
RangeQuery
WildcardQuery
PhraseQuery
短语查询例
public void add(Term term,int position)
public void setSlop(int s )
add(new Term("name","lucene",1));
add(new Term("name","教程",3));
代表搜索的是"Lucene? 教程"
setSlop(2)这两个词中间可以最多隔2个词如果指定了多个词,则是各个词之间的隔的数量的和
BooleanQuery布尔查询
public void add(Query
Occur
Occur.MUST,Occur.MUST_NOT,Occur.SHOULD。
1,
2,
3,
使用时注意:
1,
2,
3,
4,
5,
查询语法
要使用QueryParser与MultiFieldQueryParser进行解析。
指定默认的组合关系。
“+”与“-”:表示后面的条件是“MUST”,还是“MUST_NOT”
“AND”:
“OR”:
“NOT”:
“+”、“-”与“AND”、“OR”同时使用时:
可以使用括号“(”和“)”,对逻辑进行组合
private CompassConfiguration cfg=new CompassConfiguration("/compass.cfg.xml");
public void save(Article article){
tx.commit();
}catch(Exception e){
}finally{
session.close();
}
}
配置高亮器
高亮就是在关键字的前后分别加上前缀和后缀
设置默认highlighter的前缀:"compass.engine.highlighter.default.formatter.simple.pre"
设置默认highlighter的后缀:"compass.engine.highlighter.default.formatter.simple.post"