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

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

Introduction

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

Prototype

public static Query newPrefixQuery(String field, InetAddress value, int prefixLength) 

Source Link

Document

Create a prefix query for matching a CIDR network range.

Usage

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

License:Apache License

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

    String ip = "2001:db8::2:1";
    assertEquals(InetAddressPoint.newExactQuery("field", InetAddresses.forString(ip)), ft.termQuery(ip, null));

    ip = "192.168.1.7";
    assertEquals(InetAddressPoint.newExactQuery("field", InetAddresses.forString(ip)), ft.termQuery(ip, null));

    ip = "2001:db8::2:1";
    String prefix = ip + "/64";
    assertEquals(InetAddressPoint.newPrefixQuery("field", InetAddresses.forString(ip), 64),
            ft.termQuery(prefix, null));

    ip = "192.168.1.7";
    prefix = ip + "/16";
    assertEquals(InetAddressPoint.newPrefixQuery("field", InetAddresses.forString(ip), 16),
            ft.termQuery(prefix, null));

    ft.setIndexOptions(IndexOptions.NONE);
    IllegalArgumentException e = expectThrows(IllegalArgumentException.class, () -> ft.termQuery("::1", null));
    assertEquals("Cannot search on field [field] since it is not indexed.", e.getMessage());
}