lucene-索引日期与索引数字和排序
程序员文章站
2022-05-15 11:34:37
...
一、索引日期
1、Field.Keyword(String,Date)方法和DateField类进行索引
索引今天的日期可以这么做:
Document doc=new Document();
doc.add(Field.Keyword("indexDate",new Date()));
lucene内部使用了DateField类将日期转成字符串。
2、可以先转换为YYYYMMDD格式的字符串,再使用Fiedl.Keyword(String,String)方法。使用这种方式的另一个充分的理由是可以索引1970.1.1以前的日期。
3、字符串的排列是以字典顺序排列的。
二、索引数字
1、lucene通过在内部将数值处理为字符串的方式索引数值。如果需要索引的数字在*形式文本出现,要选择支持数字的Analyzer类,可选择WhitespaceAnalyzer和StandardAnalyzer,能把数字提取为一个语汇单元并传递到索引中。
2、仅有单个数字值不要分析,可做为Keyword索引
3、lucene是按字典顺序排序,因此10,6,91为字典顺序,必须前补充0为:10,06,91,这样排序后为06,10,91
三、索引Field对象用于排序
1.如果希望能按某个域对象排序,它必须是一个被索引但不被语汇单元化的域对象增加到文档中.
2.域对象必须是可转换成整形、浮点型、字符串型。