Good day, everyone!
The task is german cities selecting. But there is a note, that rows for example " city (some_land) " don`t have to be in results if the search string is like "lan", for example.
So, if we search for "bade", we have to receive Baden-Baden and not Karlsruhe (Baden).
The 1st one is present, but the 2nd one either.
The analyzers and settings I have:
my_index:
settings:
analysis:
filter:
autocomplete_filter:
type: edge_ngram
min_gram: 3
max_gram: 10
no_lands:
type: pattern_capture
patterns: ['([\w -]+(?![\([\w +\-]+\)]))']
tokenizer:
no_lands_tokenizer:
type: pattern
pattern: '([\w -]+(?![\([\w +\-]+\)]))'
analyzer:
no_lands:
tokenizer: no_lands_tokenizer
autocomplete:
type: custom
tokenizer: standard
filter:
- standard
- lowercase
- autocomplete_filter
- no_lands
If I remove standard, lowercase and others - I`ll receive broken results for other cities.
For example, "Berl" should return Berlin first, "Hann" - Hannover, etc.
regexp was checked through on-line regexp services, I`ve tried "should, must_not", etc.
Thanks!