The rich:autocomplete component looks like a simple input component, but has advanced options and features to provide suggestions to the user during input.

There are four different modes for how it fetches suggestions:

- client - preloads data to the client and makes suggestions according to the entered prefix on the client
- lazyClient - similar to client but initial suggestions loading performed not during the page load but on first component activation.
- ajax - fetches the data on every input change using Ajax requests
- cachedAjax - loads data via Ajax to make suggestions when the prefix length satisfies minChars attribute value. Then all the suggestions are handled at the client until the initial prefix is changed. At that point it will reload with the new prefix.