我应该使用哪种字段类型来存储true / false值?

时间:2017-07-26 02:55:15

标签: lucene

我想存储一个布尔值,但不确定要使用哪种字段类型。

理论上是这样的:

doc.add(new ????(“numeric”,true) doc.add(new ????(“alphatic”,true) doc.add(new ????(“alphanumeric”,true)

我将使用这些布尔字段类型查询:

  1. 搜索哪里只有数字
  2. 搜索哪里只有字母
  3. 搜索字母数字在哪里
  4. 对最佳方法有何评论? (速度/效率很重要)

1 个答案:

答案 0 :(得分:0)

我认为,StringField会完成这项工作,因为您不希望将值truefalse标记化。此外,使用构造函数中的第三个参数,您可以选择存储字段或仅作为索引的一部分而不进行存储。

JavaDoc,

  

已编制索引但未标记化的字段:整个字符串值为   索引为单个令牌。例如,这可能用于a   “country”字段或“id”字段,或您打算使用的任何字段   用于通过字段缓存进行排序或访问。

new StringField("numeric", "true", Store.NO) ....等。