List of usage examples for org.apache.lucene.document InetAddressPoint newRangeQuery
public static Query newRangeQuery(String field, InetAddress lowerValue, InetAddress upperValue)
From source file:org.elasticsearch.index.mapper.ip.IpFieldTypeTests.java
License:Apache License
public void testRangeQuery() { MappedFieldType ft = createDefaultFieldType(); ft.setName("field"); assertEquals(// ww w . j av a 2 s . c o m InetAddressPoint.newRangeQuery("field", InetAddresses.forString("::"), XInetAddressPoint.MAX_VALUE), ft.rangeQuery(null, null, randomBoolean(), randomBoolean())); assertEquals( InetAddressPoint.newRangeQuery("field", InetAddresses.forString("::"), InetAddresses.forString("192.168.2.0")), ft.rangeQuery(null, "192.168.2.0", randomBoolean(), true)); assertEquals( InetAddressPoint.newRangeQuery("field", InetAddresses.forString("::"), InetAddresses.forString("192.168.1.255")), ft.rangeQuery(null, "192.168.2.0", randomBoolean(), false)); assertEquals(InetAddressPoint.newRangeQuery("field", InetAddresses.forString("2001:db8::"), XInetAddressPoint.MAX_VALUE), ft.rangeQuery("2001:db8::", null, true, randomBoolean())); assertEquals(InetAddressPoint.newRangeQuery("field", InetAddresses.forString("2001:db8::1"), XInetAddressPoint.MAX_VALUE), ft.rangeQuery("2001:db8::", null, false, randomBoolean())); assertEquals( InetAddressPoint.newRangeQuery("field", InetAddresses.forString("2001:db8::"), InetAddresses.forString("2001:db8::ffff")), ft.rangeQuery("2001:db8::", "2001:db8::ffff", true, true)); assertEquals( InetAddressPoint.newRangeQuery("field", InetAddresses.forString("2001:db8::1"), InetAddresses.forString("2001:db8::fffe")), ft.rangeQuery("2001:db8::", "2001:db8::ffff", false, false)); assertEquals( InetAddressPoint.newRangeQuery("field", InetAddresses.forString("2001:db8::2"), InetAddresses.forString("2001:db8::")), // same lo/hi values but inclusive=false so this won't match anything ft.rangeQuery("2001:db8::1", "2001:db8::1", false, false)); // Upper bound is the min IP and is not inclusive assertEquals(new MatchNoDocsQuery(), ft.rangeQuery("::", "::", true, false)); // Lower bound is the max IP and is not inclusive assertEquals(new MatchNoDocsQuery(), ft.rangeQuery("ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", "ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", false, true)); assertEquals( InetAddressPoint.newRangeQuery("field", InetAddresses.forString("::"), InetAddresses.forString("::fffe:ffff:ffff")), // same lo/hi values but inclusive=false so this won't match anything ft.rangeQuery("::", "0.0.0.0", true, false)); assertEquals( InetAddressPoint.newRangeQuery("field", InetAddresses.forString("::1:0:0:0"), XInetAddressPoint.MAX_VALUE), // same lo/hi values but inclusive=false so this won't match anything ft.rangeQuery("255.255.255.255", "ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", false, true)); assertEquals( // lower bound is ipv4, upper bound is ipv6 InetAddressPoint.newRangeQuery("field", InetAddresses.forString("192.168.1.7"), InetAddresses.forString("2001:db8::")), ft.rangeQuery("::ffff:c0a8:107", "2001:db8::", true, true)); ft.setIndexOptions(IndexOptions.NONE); IllegalArgumentException e = expectThrows(IllegalArgumentException.class, () -> ft.rangeQuery("::1", "2001::", true, true)); assertEquals("Cannot search on field [field] since it is not indexed.", e.getMessage()); }
From source file:org.elasticsearch.index.mapper.IpFieldTypeTests.java
License:Apache License
public void testRangeQuery() { MappedFieldType ft = createDefaultFieldType(); ft.setName("field"); assertEquals(//from www. j av a 2 s .c o m InetAddressPoint.newRangeQuery("field", InetAddresses.forString("::"), InetAddressPoint.MAX_VALUE), ft.rangeQuery(null, null, randomBoolean(), randomBoolean())); assertEquals( InetAddressPoint.newRangeQuery("field", InetAddresses.forString("::"), InetAddresses.forString("192.168.2.0")), ft.rangeQuery(null, "192.168.2.0", randomBoolean(), true)); assertEquals( InetAddressPoint.newRangeQuery("field", InetAddresses.forString("::"), InetAddresses.forString("192.168.1.255")), ft.rangeQuery(null, "192.168.2.0", randomBoolean(), false)); assertEquals(InetAddressPoint.newRangeQuery("field", InetAddresses.forString("2001:db8::"), InetAddressPoint.MAX_VALUE), ft.rangeQuery("2001:db8::", null, true, randomBoolean())); assertEquals(InetAddressPoint.newRangeQuery("field", InetAddresses.forString("2001:db8::1"), InetAddressPoint.MAX_VALUE), ft.rangeQuery("2001:db8::", null, false, randomBoolean())); assertEquals( InetAddressPoint.newRangeQuery("field", InetAddresses.forString("2001:db8::"), InetAddresses.forString("2001:db8::ffff")), ft.rangeQuery("2001:db8::", "2001:db8::ffff", true, true)); assertEquals( InetAddressPoint.newRangeQuery("field", InetAddresses.forString("2001:db8::1"), InetAddresses.forString("2001:db8::fffe")), ft.rangeQuery("2001:db8::", "2001:db8::ffff", false, false)); assertEquals( InetAddressPoint.newRangeQuery("field", InetAddresses.forString("2001:db8::2"), InetAddresses.forString("2001:db8::")), // same lo/hi values but inclusive=false so this won't match anything ft.rangeQuery("2001:db8::1", "2001:db8::1", false, false)); // Upper bound is the min IP and is not inclusive assertEquals(new MatchNoDocsQuery(), ft.rangeQuery("::", "::", true, false)); // Lower bound is the max IP and is not inclusive assertEquals(new MatchNoDocsQuery(), ft.rangeQuery("ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", "ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", false, true)); assertEquals( InetAddressPoint.newRangeQuery("field", InetAddresses.forString("::"), InetAddresses.forString("::fffe:ffff:ffff")), // same lo/hi values but inclusive=false so this won't match anything ft.rangeQuery("::", "0.0.0.0", true, false)); assertEquals( InetAddressPoint.newRangeQuery("field", InetAddresses.forString("::1:0:0:0"), InetAddressPoint.MAX_VALUE), // same lo/hi values but inclusive=false so this won't match anything ft.rangeQuery("255.255.255.255", "ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", false, true)); assertEquals( // lower bound is ipv4, upper bound is ipv6 InetAddressPoint.newRangeQuery("field", InetAddresses.forString("192.168.1.7"), InetAddresses.forString("2001:db8::")), ft.rangeQuery("::ffff:c0a8:107", "2001:db8::", true, true)); ft.setIndexOptions(IndexOptions.NONE); IllegalArgumentException e = expectThrows(IllegalArgumentException.class, () -> ft.rangeQuery("::1", "2001::", true, true)); assertEquals("Cannot search on field [field] since it is not indexed.", e.getMessage()); }