[英]Storing 128bit numbers in elastic or mongodb
我的設計要求是能夠以十進制格式保存IPv6地址。 在Java中,我有BigInteger可以容納40位數字,Oracle可以通過JDBC驅動程序很好地使用它。
如何在Elastic或Mongo DB中做到這一點。 據我了解,elastic或mongodb支持的最大數字是64位bigint數字。 例如,如果我轉換
FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF,
十進制格式為
340282366920938463463374607431768211455 (total of 39 digits).
解決彈性或蒙哥幣問題的最佳方法是什么? 我需要能夠在此字段上運行范圍函數(=,<,<=,> =)以搜索文檔。
從Elasticserch 5.0開始,有一個ip
字段類型 ,它同時支持IPv4和IPv6。
我建議在Elasticsearch中使用它,而不是執行整數/字符串轉換。
原因是它自然支持子網樣式查詢,我認為這非常方便。 例如
GET index/_search
{
“query”: {
“term”: {
“ip_addr”: “2001:db8::/48”
}
}
}
此字段類型也支持范圍查詢
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.