字母数字范围查询

时间:2014-09-11 12:05:17

标签: lucene alphanumeric range-query

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

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

我有两种方法:

  1. 展开每个范围并索引所有可能的值。我猜这些独特的价值不会很大。
  2. 低值和高值的索引。然后使用范围查询。不确定,范围查询对字母数字范围的有效性
  3. 请提供专家意见。

1 个答案:

答案 0 :(得分:1)

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

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