Closed jiho closed 3 years ago
Taxonomy filter : documenter avec accès par "?" Nouvelle syntaxe appliquée uniquement au filtre "Projet". Sample basic : * traite comme % et pas case sensitive Sample advanced : pas case sensitive
voir #93
VALIDE
Non validé.
Les spécifications sont (en faisant le bilan des différentes issues):
espace
ou *
comme wildcard%
ne pas la post traiter (en considérant l'utilisateur comme expert)Testé sur l'instance de test dédiée chez ovh.
imp*tri
ou imp tri
ne renvoient rien alors que devrait être identique à imp%tri
(dans explore) idem ci-dessus
(dans http://vps322510.ovh.net/prj/192)
st 0
pas équivalent à st*0
pas d'autocomplétion visiblement.
c*pich
pas équivalent à c pich
pi*al
ne retourne rien
La spécification "‘%’ and ‘’ can be used simultaneously (e.g. ‘ijkabc%xyz’ for searching a category whose name starts with ‘abc’ AND contains ‘xyz’ AND having a parent whose name start with ‘ijk’; or ‘%xyz*abc’ for searching a category whose name starts with ‘abc’ AND having a parent whose name contains ‘xyz’)" me semble d'une complexité inutile. De plus l'ordre est parent/enfant quand nous affichons enfant/parent, ce qui est contre intuitif. Je pense qu'il faut simplifier et se conformer aux spécifications ci-dessus en travaillant sur le nom tel qu'affiché = catégorie (parent) (qui devrait devenir plus simple cf #172).
part c i
ou part*c*i
devraient renvoyer
Partenskyella (Chlorarachnida)
Partnunia (Acari)
Parthenopea (Cirripedia)
Parthenicus juniperi
Parthenicus covilleae
part (Ctenaria ctenophora)
part (Cnidaria)
et part ct
ou *part*ct
devraient renvoyer
Triparticalcar arcticum
part (Ctenaria ctenophora)
part (Ctenophora)
Il me semble qu'il faut une fonction qui traduit une chaine de requête en requête SQL, avec ou sans wildcard au début, et qui l'applique partout.
foo bar
-> %foo%bar%
ou foo%bar%
(quand pas de wildcard au début)
foo*bar
-> %foo%bar%
ou foo%bar%
*foo bar
-> %foo%bar%
(wildcard forcé au début)
foo%bar
-> foo%bar
(pas de changement)
foo%bar*
-> foo%bar*
(pas de changement = cherche un *
explicite)
Implémentation de test en R, sur table taxo, pour reproductibilité et tests
library("ecotaxar")
library("stringr")
# get taxonomy
db <- src_ecotaxa()
t <- tbl(db, "taxonomy") %>% collect()
# build the display name, like on EcoTaxa (parent for not-species level)
t$parent <- taxo_name(t$parent_id, taxo=t)
t <- filter(t, !is.na(parent)) # parent is NA when parent is root, drop this for now
t$display <- ifelse(str_detect(t$name, " "), t$name, str_c(t$name, " (", t$parent, ")"))
# filter with automatic wilcard at end (but not at start)
filt <- function(query) {
t$display[str_detect(str_to_lower(t$display), glob2rx(str_c(str_to_lower(query), "*")))]
}
filt("part*c*i")
filt("*part*ct")
A faire pour la release 1.6 en cours...
Reporté à 2.x et après discussion suivant ressources et priorités.
Le filtre TAXO de la page de classification n'a pas été refondu complètement (discussion LN cette semaine). Il faudrait vérifier à l'usage mais je pense que ce qui est implémenté maintenant avec les display_names est OK. Voir le "i" qui détaille le fonctionnement. Il faudrait implémenter ce même filtre partout où il y a du mapping de taxo (Automatic classif...)
LN indique que ce même filtre existe partout sauf dans la classif manuelle où les cinq dernières catégories utilisées sont placées au dessus dans la liste.
Le "i" n'a pas été mis à jour dans la page classif manuelle... voir ci_dessous ! Il devrait être implémenté partout où il y a possibilité de faire le mapping par auto-completion.
L'usage du % n'est pour moi pas logique par rapport au . Pourquoi ne pas remplacer tel que spécifié par JO tout en conservant les recherches "exotiques" déjà implémentées : Recherche d'un taxon connaissant le début du nom mais sans connaitre ses parents : co%pe%da par copeda ou co pe da ? Même recherche sans connaitre le début du nom : %poda par poda ou poda ? Recherche en connaissant le début du nom d'un ou plusieurs ancêtre et le début du nom du taxon : %ruscopcal par calcoprus ou cal cop rus (tenir compte du fait que nous avons inversé la notation dans les display_names)
On ajoute (déjà fait par LN) : Recherche taxon (morpho) connaissant le début du nom de son ancêtre et du nom : he<chaet
Pas un bug selon le titre "nouvelle...". Et surtout cette issue est beaucoup trop longue. S'il reste des choses à faire merci d'entrer une autre issue plus synthétique.
Clarified (hopefully) in #592 and #593
Filtres sur la gauche dans explore et classif page + filtre projet
Ex:
"point B 2000"
matches
"Point B Regent 2000" "Point blabla B 2000" "Zooscan point B 2000" "2000 Point b"