Example usage for org.apache.lucene.document InetAddressPoint MAX_VALUE

List of usage examples for org.apache.lucene.document InetAddressPoint MAX_VALUE

Introduction

In this page you can find the example usage for org.apache.lucene.document InetAddressPoint MAX_VALUE.

Prototype

InetAddress MAX_VALUE

To view the source code for org.apache.lucene.document InetAddressPoint MAX_VALUE.

Click Source Link

Document

The maximum value that an ip address can hold.

Usage

From source file:org.elasticsearch.index.mapper.IpFieldTypeTests.java

License:Apache License

public void testRangeQuery() {
    MappedFieldType ft = createDefaultFieldType();
    ft.setName("field");

    assertEquals(/*from w w  w  .  j a va2  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());
}