web-dev-qa-db-fra.com

Quelle est la limite minimale de caractères recommandée pour la saisie semi-automatique / le filtrage?

Nous aimerions fournir à nos tableaux un champ de recherche générique qui filtrera les entrées où au moins une des colonnes contient le texte d'entrée. Nous pensons également à fournir l'auto-complétion pour ce champ de recherche d'une manière ou d'une autre. Pour être clair, c'est le type qui filtre/complète automatiquement tandis que (l'utilisateur est) en tapant.

Mes questions: y a-t-il une limite de caractères minimum recommandée avant que le mécanisme de filtrage entre en action?

cas où il n'y a pas de problème de performances avec la recherche d'un seul caractère, devrait-il y avoir un minimum de toute façon? ou que cette pratique est devenue courante en raison de problèmes de performances.

7
Assimiz

Cela dépend du cas d'utilisation spécifique, mais il n'y a pas de nombre minimum convenu de caractères requis avant d'effectuer le filtrage. Si trop de résultats peuvent être renvoyés, limitez l'ensemble initial, de préférence au plus probable (si cela peut être déterminé), ou à une autre métrique comme la plus récente. Si vous utilisez Chrome, allez-y et essayez-le. Entrez un seul caractère dans votre barre d'URL et vous obtiendrez des résultats. Cela a du sens car il peut proposer de bonnes suggestions même avec un seul caractère.

La règle générale que j'utiliserais est que (en l'absence de considérations de performances) le nombre optimal dépend de combien de caractères sont nécessaires pour que votre algorithme propose des suggestions que l'utilisateur trouvera utiles.

3
illuminaut

Franchement, c'est contextuel. Pour un seul mot, généralement 2 à 4 lettres sont conservées au minimum pour lancer la fonction de saisie automatique. Il y a au moins deux raisons à cela.

L'un étant la performance comme vous l'avez souligné. Il n'est pas nécessaire de lancer un appel de filtrage lorsque vous savez que l'ensemble de données résultant sera énorme.

Deuxièmement, le nombre de résultats que vous souhaitez afficher pour réduire la charge cognitive de l'utilisateur. Les informations de saisie automatique que vous proposez devraient être directement utiles à l'utilisateur, jusque-là, ce n'est qu'une distraction. Tout simplement parce que nous le pouvons, nous ne devrions pas commencer à suggérer A pour Apple et A pour les munitions en même temps.

Afin de réduire cette charge cognitive, des paramètres tels que la réduction de la liste à cinq mots probables et une disposition verticale de ces mots peuvent être utilisés. - Wiki , la référence originale est un article de 1985, je n'ai pas pu le trouver ici.

Les trois premières lettres ont deux objectifs. Ils réduisent les résultats à des limites gérables tout en suggérant aux utilisateurs des choses importantes.

Cela dit, quand je dis que c'est contextuel, cela signifie qu'il y a deux nombreuses entrées ayant un ensemble commun de caractères. Si tel est le cas, alors cela devrait être pris en compte.

8
Sol

Juste une note à ajouter à @merqri réponse : vous pouvez considérer une fonctionnalité, dans laquelle l'utilisateur tapant une chaîne de filtre obtient des informations (cela peut être une approximation), combien de résultats il y a.

Si le nombre de résultats est réduit à par exemple. cinq, vous pouvez les montrer même après deux caractères.

Jetez un œil à la fonctionnalité de saisie semi-automatique de MS Excel: vous avez des textes (chaînes) dans les cellules au-dessus de celle dans laquelle se trouve l'utilisateur. S'il commence à taper, la saisie semi-automatique est activée, mais uniquement s'il y a exactement un résultat à faire correspondre aux entrées précédentes. Par exemple, si vous avez des noms de mois, si vous tapez F il suffit de compléter à February, mais vous devez taper Jun pour obtenir June, car Ju est à la fois June et July, et J seul est également valide pour January. Il en va de même pour March et May (deux premiers caractères communs) et April et August (uniquement le tout premier).

Donc, si vous pouvez avoir de bonnes performances de filtrage à la volée, n'ayez pas peur de commencer la correspondance même après les premiers types d'utilisateurs de caractères. C'est aussi une information pour lui qu'il tape correctement, que cela a du sens. Vous pouvez informer l'utilisateur par exemple. Found ca. 2,500 matches. Type more characters to narrow down search results.

3
Voitcus

Une différence doit être faite entre les résultats exacts pour l'auto-complétion/filtre et inexacts.

Un collègue s'est plaint à moi que dans la plupart des cas, il était très difficile pour lui de rechercher ou d'utiliser/mentionner son propre profil sur de nombreux sites, car lorsqu'il a complètement tapé son nom, la saisie automatique ne se déclenche pas. Son nom est Li. L'un des noms les plus utilisés dans le monde.

Vous devriez donc commencer à chercher des résultats exacts dès qu'il y a quelque chose tapé (ou peut-être si au moins 2 caractères sont tapés).

Les résultats de recherche inexacts doivent être lancés si le nombre de résultats escompté est suffisamment petit. Si vous affichez m les résultats d'un total de n possibilités d'auto-complétion/filtre, alors comme estimation brute utilisez m >= log_a(n)a est le taille de l'alphabet généralement utilisée dans les résultats.

2
SpaceTrucker