How do I make Elasticsearch address search a smooth experience?

Elasticsearch version ( bin/elasticsearch --version ):
5.6.11
Plugins installed :

JVM version ( java -version ):
openjdk version "1.8.0_222"
OpenJDK Runtime Environment (build 1.8.0_222-8u222-b10-1ubuntu1~16.04.1-b10)
OpenJDK 64-Bit Server VM (build 25.222-b10, mixed mode)

OS version ( uname -a if on a Unix-like system):
Linux myserver 4.4.0-131-generic #157-Ubuntu SMP Thu Jul 12 15:51:36 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

Hi all i'm currently facing an issue where I would like to be able to search for an Address in any way the user could enter said address, e.g. looking for an address.

I want my search to be able to search in such a way that the user input order doesnt matter.

for example an address:
Strawinskylaan 1 (streetname + number)
1077 XW Amsterdam (postalcode + postalcode Letters + City)

The user would input for example:
"1077 XW"

OR

"Amsterdam Strawinskylaan"

OR

"Strawinskylaan"

Sometimes a building might have a name which is also stored in my documents

I currently store all of these mentioned fields separately as such per document:

  • building_name
  • streetname
  • number
  • postalcode
  • postalcode_letters
  • city

So without knowing in which order the user will give its input, how could i make my example work? Would I need to restructure?

I think you can use the multimatch query and try to apply what the user has entered to every field. You might need to "boost" some fields though.