I created an IP database using Redis:
Schema schema = new Schema()
.AddNumericField(new FieldName("$.ipstart", "ipstart"))
.AddNumericField(new FieldName("$.ipend", "ipend"));
await ft.CreateAsync("idx:ipv4",
new FTCreateParams().On(IndexDataType.JSON).Prefix("ipv4:"), schema);
//add data
var json = new
{
ipstart = uint.Parse(data[0]),//ip range start
ipend = uint.Parse(data[1]),//ip range end
details = new
{
countrycode = string.IsNullOrEmpty(data[2]) ? null : data[2],
state1 = string.IsNullOrEmpty(data[3]) ? null : data[3],
state2 = string.IsNullOrEmpty(data[4]) ? null : data[4],
city = string.IsNullOrEmpty(data[5]) ? null : data[5],
postcode = string.IsNullOrEmpty(data[6]) ? null : data[6],
latitude = double.Parse(data[7]),
longitude = double.Parse(data[8]),
}
};
await db.JSON().SetAsync($"ipv4:{count++}", "$", json);
then add this item:
"{"ipstart":16777472,"ipend":16778239,"details":{"countrycode":"CN","latitude":34.7732,"longitude":113.722}}"
But when I searched, there were no results:
`*> ft.search idx:ipv4 “@ipstart:[-inf 16777472]”
- “0”
ft.search idx:ipv4 “@ipstart:[0 16777472]”
- “0”
ft.search idx:ipv4 “(@ipstart:[0 16777472])”
- “0”
ft.search idx:ipv4 “(@ipstart:16777472)”
- “0”
ft.search idx:ipv4 “@ipstart:16777472”
- “0”
ft.search idx:ipv4 “@ipstart:(16777472)”
- “0”*`