PLEASE NOTE:
We are working on updating this book for the latest version. Some content might be out of date.
We are working on updating this book for the latest version. Some content might be out of date.
Postcodes and Structured Dataedit
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:
PUT /my_index
{
"mappings": {
"address": {
"properties": {
"postcode": {
"type": "string",
"index": "not_analyzed"
}
}
}
}
}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.