Geocoding setup multiple fields

Hello,
I'm wondering if someone could provide some general help with what type of
index/mapping might look like to do some geocoding with these requirements.

My data has multiple fields such as HouseNumber, Street, City

User's will input data such as

"123 South Street Laurel"
"123 South St"
"12 Sowth st Larel"
"28 south street".
"South Street"

I need to return results based on scoring assumming Street should get the
highest ranking, then city, and then house number. (Maybe like a top 10 or
something)

My search needs to be case insensitive and have some fuzzinesss. (if user
spells a word wrong, etc... ).

If I have data in the index such as HouseNumber:123, Street:South Street,
City:Laurel.

I want all of the records above to be found.

The questions I have is what would be a general overview of the
mapping/analyzers of what I would need to setup from both an index and
search?

My data set will have millions of records.

My initial thoughts are that I would need some type of lowercase analyzer,
and possibly synonyms (for Street/ ST or Avenue/Ave ??). I'm wondering
if a Phonetic analyzer might be used
Is it possible to do this with non analyzed fields?

I've looked into the fuzzy_like_this but doesn't seem to provide desired
results. I've also tried multi_match and Boolean queries with multiple
fuzzy components but not seeming to work as desired. (This was with
non-analyzed fields).

Any help or guidance on this setup would be appreciated.

Thanks

--
You received this message because you are subscribed to the Google Groups "elasticsearch" group.
To unsubscribe from this group and stop receiving emails from it, send an email to elasticsearch+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/elasticsearch/4ddccac8-eb02-4ce2-a5f0-13b3a4809f2e%40googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.