0

有没有一种有效的方法来处理 lucene 中的字母数字范围?示例范围,

  • 1 对 1(包括 1A、1B.. 1Z)
  • 10A12 至 10A22(包括 10A12、10A13.. 120A22)
  • 1到10(包括1A,1B..,2A,2B..,9Z,10)[不包括10A]

我有两种方法:

  1. 扩展每个范围并索引所有可能的值。我想独特的价值不会很大。
  2. 低值和高值的索引。然后使用范围查询。不确定,对字母数字范围进行范围查询的效果如何

需要这方面的专家建议,请。

4

1 回答 1

1

我希望您同意您定义的规则是非常习惯的,并不真正适合通用框架,例如 Lucene。例如,为什么范围会[1..1]包含字母但[1..10]不会?

我不知道你的数据集是否可行,但如果你能想出规则,使用一些任意公式将每个元素(包括有字母的元素)转换为唯一的数字,你可以在索引和索引时都使用这个公式查询。这甚至允许范围匹配。

于 2014-09-11T12:35:38.677 回答