Solr 如何导入 IPv6 或者 128 位整数?

2018-04-13 19:31:29 +08:00
 fox0001
想把 IPv6 与国家的关联关系导入 Solr,并用于查询。

每条数据的属性分别是:起始 IP,结束 IP,国家名称。其中,所有 IPv6 地址已转换成 128 位整数。

但是 Solr 好像不支持 128 位整数,有没有办法解决? Google 了一圈无果……
2340 次点击
所在节点    程序员
9 条回复
MrXiong
2018-04-13 20:56:28 +08:00
使用字符串呢
fox0001
2018-04-14 00:40:59 +08:00
@MrXiong #1 字符串不能像数字那样比较大小,例如 "3" > "123"
Arnie97
2018-04-14 00:42:51 +08:00
@fox0001 补零😂
lqs
2018-04-14 00:48:50 +08:00
取前 64 位就行了
fox0001
2018-04-14 02:02:07 +08:00
@Arnie97 #3 你妹,居然没想到!我去试试
gabon
2018-04-14 08:15:55 +08:00
BigInteger
long 数组或者 byte 数组封装一个对象,重写 compareTo 方法。
fox0001
2018-04-14 11:35:16 +08:00
@gabon #6 不好意思,不懂,没试过扩展 Solr。有没有详细一点的教程?
lianyue
2018-04-14 12:46:56 +08:00
换成 字符串 二进制 01010101010 这种 128 位 很好比对
realpg
2018-04-14 20:05:15 +08:00
取前 48 位就够了
目前 IPV6 分配,应该是最小分配块也是 /48 的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/446631

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX