Lucene 字母数字范围查询

Lucene 字母数字范围查询,lucene,alphanumeric,range-query,Lucene,Alphanumeric,Range Query,有没有一种有效的方法来处理lucene中的字母数字范围? 示例范围 1至1(包括1A、1B、1Z) 10A12至10A22(包括10A12、10A13..120A22) 1至10(包括1A、1B、2A、2B、9Z、10)[不包括10A] 我有两种方法: 展开每个范围并索引所有可能的值。我想独特的价值不会很大 低值和高值索引。然后使用范围查询。不确定,范围查询对字母数字范围的效果如何 需要专家的建议。我希望您同意,您定义的规则是非常习惯的,并不真正适用于通用框架,例如Lucene。例如,为什么

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

  • 1至1(包括1A、1B、1Z)
  • 10A12至10A22(包括10A12、10A13..120A22)
  • 1至10(包括1A、1B、2A、2B、9Z、10)[不包括10A]
我有两种方法:

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

  • 需要专家的建议。

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


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

    数字范围始终可以在末尾预期一个字母。编辑了这些问题。