Bonjour,
j’essaye de comprendre un problème que j’ai dans la cohérence du résultat d’une recherche.
Avec une instance d’Addok en version 0.5, je retrouve la bonne adresse avec cette recherche :
SEARCH 37 RUE DE CROIX 02230 FRESNOY LE GRAND
37 RUE DE CROIX 02230 FRESNOY LE GRAND (Q1RQNzg3U1RQMzI4Mjk= | 1.08181817965074)
Avec la version 1, je ne la retrouve pas :
SEARCH 37 RUE DE CROIX 02230 FRESNOY LE GRAND
RUE DE FRESNOY 02110 CROIX FONSOMME (U1RSRUVUOjMxNDA3 | 0.4829545454545454)
Je constate que si je retire le code postal, je trouve la bonne adresse :
SEARCH 37 RUE DE CROIX FRESNOY LE GRAND
37 RUE DE CROIX 02230 FRESNOY LE GRAND (U1RSRUVUOjMzMzI2 | 0.7764127764127763)
Les évolutions d’Addok m’ont amené à deux configurations différentes.
v0.5 :
PROCESSORS_PYPATHS = [
‹ addok.textutils.default.pipeline.tokenize ›,
‹ addok.textutils.default.pipeline.normalize ›,
‹ addok.textutils.default.pipeline.synonymize ›,
‹ addok.textutils.fr.phonemicize ›,
‹ addok_france.extract_address ›,
‹ addok_france.clean_query ›,
‹ addok_fr.phonemicize ›,
]
QUERY_PROCESSORS_PYPATHS = (
‹ addok.textutils.fr_FR.extract_address ›,
‹ addok.textutils.fr_FR.clean_query ›,
‹ addok.textutils.fr_FR.glue_ordinal ›,
‹ addok_france.glue_ordinal ›,
‹ addok_france.fold_ordinal ›,
‹ addok_france.flag_housenumber ›,
)
SEARCH_RESULT_PROCESSORS_PYPATHS = [
‹ addok_france.match_housenumber ›,
‹ addok_france.make_labels ›
]
v1 :
PROCESSORS_PYPATHS = [
« addok.helpers.text.tokenize »,
« addok.helpers.text.normalize »,
« addok_france.glue_ordinal »,
« addok_france.fold_ordinal »,
« addok_france.flag_housenumber »,
« addok.helpers.text.synonymize »,
« addok_fr.phonemicize »,
]
QUERY_PROCESSORS_PYPATHS = [
« addok_france.extract_address »,
« addok_france.clean_query »,
« addok_france.remove_leading_zeros »,
« addok_france.glue_ordinal »,
« addok_france.fold_ordinal »,
]
SEARCH_RESULT_PROCESSORS_PYPATHS = [
« addok_france.match_housenumber »,
« addok_france.make_labels »,
« addok.helpers.results.score_by_importance »,
« addok.helpers.results.score_by_autocomplete_distance »,
« addok.helpers.results.score_by_ngram_distance »,
« addok.helpers.results.score_by_geo_distance »,
]
En essayant un EXPLAIN, je n’arrive pas à interpréter le résultat. L’index correspondant au code postal est bien trouvé.
En v0.5 :
EXPLAIN 37 RUE DE CROIX 02230 FRESNOY LE GRAND
[8.764] Taken tokens: [, <Token 02230>]
[8.815] Common tokens: [, <Token 37>, , , , ]
[8.833] Not found tokens: []
[8.848] Filters: []
[8.874] ** STEP_ONLY_COMMONS **
[8.893] ** STEP_NO_MEANINGFUL_BUT_COMMON_TRY_AUTOCOMPLETE **
[8.910] ** STEP_BUCKET_WITH_MEANINGFUL **
[8.938] New bucket with keys [‹ w|frenoi ›, ‹ w|02230 ›] and limit 10
[9.426] 10 ids in bucket so far
[9.468] New bucket with keys [‹ w|frenoi ›, ‹ w|02230 ›] and limit 0
[9.897] 70 ids in bucket so far
[9.932] ** STEP_REDUCE_WITH_OTHER_COMMONS **
[9.971] ** STEP_ENSURE_GEOHASH_RESULTS_ARE_INCLUDED_IF_CENTER_IS_GIVEN **
[9.994] ** STEP_AUTOCOMPLETE **
[10.01] Autocompleting gran
[10.18] Found tokens to autocomplete set()
[10.22] ** STEP_CHECK_BUCKET_FULL **
[10.24] Computing results
[63.32] Done computing results
37 RUE DE CROIX 02230 FRESNOY LE GRAND (Q1RQNzg3U1RQMzI4Mjk= | str_distance: 1.0/1.0, importance: 0.19/0.1)
RUE DE PERONNE 02230 FRESNOY LE GRAND (Q1RQNzg3U1RQMzI4MjM= | str_distance: 0.6591/1.0, importance: 0.19/0.1)
RUE DE GUISE 02230 FRESNOY LE GRAND (Q1RQNzg3U1RQMzI4MjE= | str_distance: 0.6512/1.0, importance: 0.19/0.1)
37 RUE LEVAUFRE 02230 FRESNOY LE GRAND (Q1RQNzg3U1RQMzI4MjY= | str_distance: 0.6444/1.0, importance: 0.19/0.1)
RUE DE VERDUN 02230 FRESNOY LE GRAND (Q1RQNzg3U1RQMzI4MzQ= | str_distance: 0.6364/1.0, importance: 0.19/0.1)
RUE DE L ASILE 02230 FRESNOY LE GRAND (Q1RQNzg3U1RQMzI4MjU= | str_distance: 0.6222/1.0, importance: 0.19/0.1)
RUE DE LA COMEDIE 02230 FRESNOY LE GRAND (Q1RQNzg3U1RQMzI4MzU= | str_distance: 0.617/1.0, importance: 0.19/0.1)
RUE DU SAULE 02230 FRESNOY LE GRAND (Q1RQNzg3U1RQMzI4MjA= | str_distance: 0.6136/1.0, importance: 0.19/0.1)
37 RUE VENET MENU 02230 FRESNOY LE GRAND (Q1RQNzg3U1RQMzI4MDc= | str_distance: 0.5833/1.0, importance: 0.19/0.1)
RUE DE LA REPUBLIQUE 02230 FRESNOY LE GRAND (Q1RQNzg3U1RQMzI4MTM= | str_distance: 0.58/1.0, importance: 0.19/0.1)
64.6 ms / 10 results
en v1 :
EXPLAIN 37 RUE DE CROIX 02230 FRESNOY LE GRAND
[8.714] Taken tokens: [<Token 2230>, ]
[8.735] Common tokens: [, <Token 37>, , , , ]
[8.741] Not found tokens: []
[8.748] Filters: []
[8.757] ** ONLY_COMMONS_BUT_GEOHASH_TRY_AUTOCOMPLETE_COLLECTOR **
[8.765] ** ONLY_COMMONS **
[8.772] ** NO_MEANINGFUL_BUT_COMMON_TRY_AUTOCOMPLETE_COLLECTOR **
[8.777] ** ONLY_COMMONS_TRY_AUTOCOMPLETE_COLLECTOR **
[8.782] ** BUCKET_WITH_MEANINGFUL **
[8.796] New bucket with keys [‹ w|2230 ›, ‹ w|frenoi ›] and limit 10
[9.347] 0 ids in bucket so far
[9.363] ** REDUCE_WITH_OTHER_COMMONS **
[9.384] ** ENSURE_GEOHASH_RESULTS_ARE_INCLUDED_IF_CENTER_IS_GIVEN **
[9.393] ** FUZZY_COLLECTOR **
[9.416] Fuzzy on. Trying with [<Token 2230>, ].
[9.439] Going fuzzy with frenoi
[12.27] Found fuzzy candidates []
[12.30] Fuzzy on. Trying with [, <Token 2230>].
[12.31] Going fuzzy with frenoi
[14.93] Found fuzzy candidates []
[14.95] ** AUTOCOMPLETE_MEANINGFUL_COLLECTOR **
[14.96] Autocompleting gran
[15.27] Found tokens to autocomplete {b’grand’}
[15.29] Trying to extend bucket. Autocomplete w|grand
[15.30] Adding to bucket with keys [‹ w|frenoi ›, ‹ w|2230 ›, ‹ w|grand ›]
[15.49] 0 ids in bucket so far
[15.51] ** EXTEND_RESULTS_REDUCING_TOKENS **
[15.52] Bucket dry. Trying to remove some tokens.
[15.53] Adding to bucket with keys [‹ w|frenoi ›]
[15.72] 100 ids in bucket so far
[15.73] Computing results
[15.76] Done getting results data
[69.11] Done computing results
RUE DE FRESNOY 02110 CROIX FONSOMME (U1RSRUVUOjMxNDA3 | str_distance: 0.4313/1.0, importance: 0.1/0.1)
37 RUE DE FRESNOY 60134 VILLERS ST SEPULCRE (U1RSRUVUOjE0NzQ5MTA= | str_distance: 0.3892/1.0, importance: 0.1/0.1)
37 RUE DE FRESNOY 80700 ROYE (U1RSRUVUOjE5NDEzNTA= | str_distance: 0.3892/1.0, importance: 0.1/0.1)
37 RUE DE FRESNOY 80700 HATTENCOURT (U1RSRUVUOjE5MzY1NzA= | str_distance: 0.3892/1.0, importance: 0.1/0.1)
RUE DU FRESNOY 62300 LENS (U1RSRUVUOjE1MjAzMDk= | str_distance: 0.3477/1.0, importance: 0.1/0.1)
FRESNOY LE GRAND (Q0lUWTo3ODc= | str_distance: 0.3649/1.0, importance: 0.07/0.1)
37 RUE DU FRESNOY 59100 ROUBAIX (U1RSRUVUOjE0NDYxOTQ= | str_distance: 0.3306/1.0, importance: 0.1/0.1)
37 RUE DU FRESNOY 59200 TOURCOING (U1RSRUVUOjE0NTA5OTE= | str_distance: 0.3231/1.0, importance: 0.1/0.1)
37 RUE DU FRESNOY 59390 LYS LEZ LANNOY (U1RSRUVUOjE0MzgzOTY= | str_distance: 0.3231/1.0, importance: 0.1/0.1)
37 RUE DU FRESNOY 62161 MAROEUIL (U1RSRUVUOjE1MjMxODc= | str_distance: 0.3231/1.0, importance: 0.1/0.1)
69.6 ms — 1 run(s) — 10 results
Pouvez-vous m’aider ?
Merci.