How to suggest (autocomplete) next word in elastic search?

后端 未结 2 1864
别那么骄傲
别那么骄傲 2020-12-10 12:14

Lets say I have following strings indexed:

\"My awesome pizza\"
\"My awesome beer\"
\"Heineken is awesome beer\"
\"I love pizza pepperoni\"
\"Where is my bee         


        
相关标签:
2条回答
  • 2020-12-10 12:28

    Elasticsearch provides a convenient way to get autocomplete up and running quickly with its completion suggester feature.

    Check this link, this is what you are looking for

    https://qbox.io/blog/multi-field-partial-word-autocomplete-in-elasticsearch-using-ngrams

    Completion Suggester also helps you to achieve this functionality

    0 讨论(0)
  • 2020-12-10 12:29

    Just in case anyone bumps in here, the edge-n-gram approach (as noted by @Siddardha Budige) is now superseded by completion suggesters.

    They are purposely built with auto-completion in mind, so they are fast end efficient. A very informative post By the ES team can be found here.

    Two caveats:

    1. They are implemented by an in-memory Data-Structure (called a Finite State Transducer) and are therefore not suitable for large datasets that can't fit in memory.

    2. The ranking of the results is not based on similarity (a result either matches or not) so you have to be careful with blending fuzzy and non-fuzzy matches.

    EDIT: We shared our own experience with using Completion Suggesters here.

    It includes some practical examples on fuzzyness and info for non-English inputs.

    0 讨论(0)
提交回复
热议问题