PUT /my_index
{
"mappings": {
"address": {
"properties": {
"postcode": {
"type": "string",
"index": "not_analyzed"
}
}
}
}
}
Postcodes and Structured Data
We will use United Kingdom postcodes (postal codes in the United States) to illustrate how to use partial matching with
structured data. UK postcodes have a well-defined structure. For instance, the
postcode W1V 3DG can be broken down as follows:
-
W1V: This outer part identifies the postal area and district:-
Windicates the area (one or two letters) -
1Vindicates the district (one or two numbers, possibly followed by a letter)
-
-
3DG: This inner part identifies a street or building:-
3indicates the sector (one number) -
DGindicates the unit (two letters)
-
Let’s assume that we are indexing postcodes as exact-value not_analyzed
fields, so we could create our index as follows:
And index some postcodes:
PUT /my_index/address/1
{ "postcode": "W1V 3DG" }
PUT /my_index/address/2
{ "postcode": "W2F 8HW" }
PUT /my_index/address/3
{ "postcode": "W1F 7HW" }
PUT /my_index/address/4
{ "postcode": "WC1N 1LZ" }
PUT /my_index/address/5
{ "postcode": "SW5 0BE" }
Now our data is ready to be queried.