[2.x] Use synonym graph instead of regular synonyms #663
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The difference between the two is here in the documentation: https://www.elastic.co/guide/en/elasticsearch/reference/7.17/analysis-synonym-graph-tokenfilter.html
But in short, this allows you to use synonyms that are multiple words without those words getting broken up into individual tokens. For clarity, here's an example.
Say you have a synonym set up with "jacket" and "large shirt". Before this change, that turned searches for "jacket" to also search for "large" and "shirt" individually, returning anything large and your whole stock of shirts. Not really ideal for when you're trying to sell people jackets!
After this change, the "large shirt" automatically gets turned into a phrase where both words must exist before it matches. Thus, your search will correctly only return jackets and large shirts, which is more in line with what you would expect.
We could also make this configurable, however I currently don't really see a world where you want the other behavior.