/branches/v2.0-betulales/composer.lock |
---|
New file |
0,0 → 1,70 |
{ |
"_readme": [ |
"This file locks the dependencies of your project to a known state", |
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", |
"This file is @generated automatically" |
], |
"hash": "315598531df256ff14faa95c8204fbc4", |
"content-hash": "880efde79aac3761bad499d586fd4c07", |
"packages": [ |
{ |
"name": "algolia/algoliasearch-client-php", |
"version": "1.12.0", |
"source": { |
"type": "git", |
"url": "https://github.com/algolia/algoliasearch-client-php.git", |
"reference": "9827fb0c488f20d7e6799588dc016dd87d11d6d8" |
}, |
"dist": { |
"type": "zip", |
"url": "https://api.github.com/repos/algolia/algoliasearch-client-php/zipball/9827fb0c488f20d7e6799588dc016dd87d11d6d8", |
"reference": "9827fb0c488f20d7e6799588dc016dd87d11d6d8", |
"shasum": "" |
}, |
"require": { |
"ext-mbstring": "*", |
"php": ">=5.3" |
}, |
"require-dev": { |
"phpunit/phpunit": "^4.8 || ^5.0", |
"satooshi/php-coveralls": "0.6.*" |
}, |
"type": "library", |
"autoload": { |
"psr-0": { |
"AlgoliaSearch": "src/", |
"AlgoliaSearch\\Tests": "tests/" |
} |
}, |
"notification-url": "https://packagist.org/downloads/", |
"license": [ |
"MIT" |
], |
"authors": [ |
{ |
"name": "Algolia Team", |
"email": "contact@algolia.com" |
}, |
{ |
"name": "Ryan T. Catlin", |
"email": "ryan.catlin@gmail.com" |
}, |
{ |
"name": "Jonathan H. Wage", |
"email": "jonwage@gmail.com" |
} |
], |
"description": "Algolia Search API Client for PHP", |
"homepage": "https://github.com/algolia/algoliasearch-client-php", |
"time": "2016-12-08 13:02:53" |
} |
], |
"packages-dev": [], |
"aliases": [], |
"minimum-stability": "stable", |
"stability-flags": [], |
"prefer-stable": false, |
"prefer-lowest": false, |
"platform": [], |
"platform-dev": [] |
} |
/branches/v2.0-betulales/composer.json |
---|
New file |
0,0 → 1,5 |
{ |
"require": { |
"algolia/algoliasearch-client-php": "^1.11" |
} |
} |
/branches/v2.0-betulales/scripts/modules/algolia/algolia_isfan.sql |
---|
New file |
0,0 → 1,26 |
SELECT b.num_nom AS isfan_num_nom, b.num_nom_retenu AS isfan_num_nom_retenu, b.num_tax_sup AS isfan_num_tax_sup, b.rang AS isfan_rang, b.nom_sci AS isfan_nom_sci, b.auteur AS isfan_auteur, b.annee AS isfan_annee, b.`biblio_origine` AS isfan_biblio, b.nom_francais AS isfan_nom_francais, isfan_synonymes, b.`nom_supra_generique` AS isfan_nom_supra_generique, b.`genre` AS isfan_genre, b.`epithete_sp` AS isfan_epithete_sp, b.`type_epithete` AS isfan_type_epithete, b.`epithete_infra_sp` AS isfan_epithete_infra_sp, b.`cultivar` AS isfan_cultivar, b.`cultivar_groupe` AS isfan_cultivar_groupe, concat('https://beta.tela-botanica.org/test/isfan-nn-', b.`num_nom_retenu`) as isfan_url, |
CASE WHEN b.rang > 290 THEN |
concat('["',substr(`genre`, 1, 3),substr(`epithete_sp`, 1, 3), '","', substr(`genre`, 1, 2),' ',substr(`epithete_sp`, 1, 1),' ', substr(`epithete_infra_sp`, 1, 1), '","', substr(`genre`, 1, 2),' ',substr(`epithete_sp`, 1, 2), ' ', substr(`epithete_infra_sp`, 1, 1),'","', substr(`genre`, 1, 2),' ',substr(`epithete_sp`, 1, 3),' ', substr(`epithete_infra_sp`, 1, 1), '","', substr(`genre`, 1, 3),' ',substr(`epithete_sp`, 1, 1),' ', substr(`epithete_infra_sp`, 1, 1),'","', substr(`genre`, 1, 3),' ',substr(`epithete_sp`, 1, 2),' ', substr(`epithete_infra_sp`, 1, 1), '","', substr(`genre`, 1, 3),' ',substr(`epithete_sp`, 1, 3),' ', substr(`epithete_infra_sp`, 1, 1), '","', substr(`genre`, 1, 4),' ',substr(`epithete_sp`, 1, 1),' ', substr(`epithete_infra_sp`, 1, 1), '","', substr(`genre`, 1, 4),' ',substr(`epithete_sp`, 1, 2),' ', substr(`epithete_infra_sp`, 1, 1), '","', substr(`genre`, 1, 4),' ',substr(`epithete_sp`, 1, 3),' ', substr(`epithete_infra_sp`, 1, 1),'","', |
substr(`genre`, 1, 2),' ',substr(`epithete_sp`, 1, 1),' ', substr(`epithete_infra_sp`, 1, 2), '","', substr(`genre`, 1, 2),' ',substr(`epithete_sp`, 1, 2), ' ', substr(`epithete_infra_sp`, 1, 2),'","', substr(`genre`, 1, 2),' ',substr(`epithete_sp`, 1, 3),' ', substr(`epithete_infra_sp`, 1, 2), '","', substr(`genre`, 1, 3),' ',substr(`epithete_sp`, 1, 1),' ', substr(`epithete_infra_sp`, 1, 2),'","', substr(`genre`, 1, 3),' ',substr(`epithete_sp`, 1, 2),' ', substr(`epithete_infra_sp`, 1, 2), '","', substr(`genre`, 1, 3),' ',substr(`epithete_sp`, 1, 3),' ', substr(`epithete_infra_sp`, 1, 2), '","', substr(`genre`, 1, 4),' ',substr(`epithete_sp`, 1, 1),' ', substr(`epithete_infra_sp`, 1, 2), '","', substr(`genre`, 1, 4),' ',substr(`epithete_sp`, 1, 2),' ', substr(`epithete_infra_sp`, 1, 2), '","', substr(`genre`, 1, 4),' ',substr(`epithete_sp`, 1, 3),' ', substr(`epithete_infra_sp`, 1, 2),'","', |
substr(`genre`, 1, 2),' ',substr(`epithete_sp`, 1, 1),' ', substr(`epithete_infra_sp`, 1, 3), '","', substr(`genre`, 1, 2),' ',substr(`epithete_sp`, 1, 2), ' ', substr(`epithete_infra_sp`, 1, 3),'","', substr(`genre`, 1, 2),' ',substr(`epithete_sp`, 1, 3),' ', substr(`epithete_infra_sp`, 1, 3), '","', substr(`genre`, 1, 3),' ',substr(`epithete_sp`, 1, 1),' ', substr(`epithete_infra_sp`, 1, 3),'","', substr(`genre`, 1, 3),' ',substr(`epithete_sp`, 1, 2),' ', substr(`epithete_infra_sp`, 1, 3), '","', substr(`genre`, 1, 3),' ',substr(`epithete_sp`, 1, 3),' ', substr(`epithete_infra_sp`, 1, 3), '","', substr(`genre`, 1, 4),' ',substr(`epithete_sp`, 1, 1),' ', substr(`epithete_infra_sp`, 1, 3), '","', substr(`genre`, 1, 4),' ',substr(`epithete_sp`, 1, 2),' ', substr(`epithete_infra_sp`, 1, 3), '","', substr(`genre`, 1, 4),' ',substr(`epithete_sp`, 1, 3),' ', substr(`epithete_infra_sp`, 1, 3),'"]') |
WHEN b.rang = 220 THEN |
concat('["',substr(`genre`, 1, 1), '","', substr(`genre`, 1, 2), '","', substr(`genre`, 1, 3), '","', substr(`genre`, 1, 4), '"]') |
WHEN b.rang < 220 THEN |
concat('["',substr(`nom_supra_generique`, 1, 1), '","', substr(`nom_supra_generique`, 1, 2), '","', substr(`nom_supra_generique`, 1, 3), '","', substr(`nom_supra_generique`, 1, 4), '"]') |
ELSE concat('["',substr(`genre`, 1, 3),substr(`epithete_sp`, 1, 3), '","', substr(`genre`, 1, 2),' ',substr(`epithete_sp`, 1, 1), '","', substr(`genre`, 1, 2),' ',substr(`epithete_sp`, 1, 2), '","', substr(`genre`, 1, 2),' ',substr(`epithete_sp`, 1, 3), '","', substr(`genre`, 1, 3),' ',substr(`epithete_sp`, 1, 1),'","', substr(`genre`, 1, 3),' ',substr(`epithete_sp`, 1, 2), '","', substr(`genre`, 1, 3),' ',substr(`epithete_sp`, 1, 3), '","', substr(`genre`, 1, 4),' ',substr(`epithete_sp`, 1, 1), '","', substr(`genre`, 1, 4),' ',substr(`epithete_sp`, 1, 2), '","', substr(`genre`, 1, 4),' ',substr(`epithete_sp`, 1, 3),'"]') |
END as isfan_shortcuts |
FROM `isfan` b, (SELECT num_nom_retenu, concat('[',group_concat('"',nom_sci,' ',auteur,'"'),']') AS isfan_synonymes FROM isfan WHERE num_nom != num_nom_retenu AND num_nom_retenu != 0 GROUP BY `num_nom_retenu`) as c |
WHERE b.num_nom_retenu = c.num_nom_retenu AND b.num_nom = b.num_nom_retenu AND b.nom_sci != ' ' |
UNION |
SELECT b.num_nom AS isfan_num_nom, b.num_nom_retenu AS isfan_num_nom_retenu, b.num_tax_sup AS isfan_num_tax_sup, b.rang AS isfan_rang, b.nom_sci AS isfan_nom_sci, b.auteur AS isfan_auteur, b.annee AS isfan_annee, b.`biblio_origine` AS isfan_biblio, b.nom_francais AS isfan_nom_francais, '' as isfan_synonymes, b.`nom_supra_generique` AS isfan_nom_supra_generique, b.`genre` AS isfan_genre, b.`epithete_sp` AS isfan_epithete_sp, b.`type_epithete` AS isfan_type_epithete, b.`epithete_infra_sp` AS isfan_epithete_infra_sp, b.`cultivar` AS isfan_cultivar, b.`cultivar_groupe` AS isfan_cultivar_groupe, concat('https://beta.tela-botanica.org/eflore/isfan-nn-', b.`num_nom_retenu`) as isfan_url, |
CASE WHEN b.rang > 290 THEN |
concat('["',substr(`genre`, 1, 3),substr(`epithete_sp`, 1, 3), '","', substr(`genre`, 1, 2),' ',substr(`epithete_sp`, 1, 1),' ', substr(`epithete_infra_sp`, 1, 1), '","', substr(`genre`, 1, 2),' ',substr(`epithete_sp`, 1, 2), ' ', substr(`epithete_infra_sp`, 1, 1),'","', substr(`genre`, 1, 2),' ',substr(`epithete_sp`, 1, 3),' ', substr(`epithete_infra_sp`, 1, 1), '","', substr(`genre`, 1, 3),' ',substr(`epithete_sp`, 1, 1),' ', substr(`epithete_infra_sp`, 1, 1),'","', substr(`genre`, 1, 3),' ',substr(`epithete_sp`, 1, 2),' ', substr(`epithete_infra_sp`, 1, 1), '","', substr(`genre`, 1, 3),' ',substr(`epithete_sp`, 1, 3),' ', substr(`epithete_infra_sp`, 1, 1), '","', substr(`genre`, 1, 4),' ',substr(`epithete_sp`, 1, 1),' ', substr(`epithete_infra_sp`, 1, 1), '","', substr(`genre`, 1, 4),' ',substr(`epithete_sp`, 1, 2),' ', substr(`epithete_infra_sp`, 1, 1), '","', substr(`genre`, 1, 4),' ',substr(`epithete_sp`, 1, 3),' ', substr(`epithete_infra_sp`, 1, 1),'","', |
substr(`genre`, 1, 2),' ',substr(`epithete_sp`, 1, 1),' ', substr(`epithete_infra_sp`, 1, 2), '","', substr(`genre`, 1, 2),' ',substr(`epithete_sp`, 1, 2), ' ', substr(`epithete_infra_sp`, 1, 2),'","', substr(`genre`, 1, 2),' ',substr(`epithete_sp`, 1, 3),' ', substr(`epithete_infra_sp`, 1, 2), '","', substr(`genre`, 1, 3),' ',substr(`epithete_sp`, 1, 1),' ', substr(`epithete_infra_sp`, 1, 2),'","', substr(`genre`, 1, 3),' ',substr(`epithete_sp`, 1, 2),' ', substr(`epithete_infra_sp`, 1, 2), '","', substr(`genre`, 1, 3),' ',substr(`epithete_sp`, 1, 3),' ', substr(`epithete_infra_sp`, 1, 2), '","', substr(`genre`, 1, 4),' ',substr(`epithete_sp`, 1, 1),' ', substr(`epithete_infra_sp`, 1, 2), '","', substr(`genre`, 1, 4),' ',substr(`epithete_sp`, 1, 2),' ', substr(`epithete_infra_sp`, 1, 2), '","', substr(`genre`, 1, 4),' ',substr(`epithete_sp`, 1, 3),' ', substr(`epithete_infra_sp`, 1, 2),'","', |
substr(`genre`, 1, 2),' ',substr(`epithete_sp`, 1, 1),' ', substr(`epithete_infra_sp`, 1, 3), '","', substr(`genre`, 1, 2),' ',substr(`epithete_sp`, 1, 2), ' ', substr(`epithete_infra_sp`, 1, 3),'","', substr(`genre`, 1, 2),' ',substr(`epithete_sp`, 1, 3),' ', substr(`epithete_infra_sp`, 1, 3), '","', substr(`genre`, 1, 3),' ',substr(`epithete_sp`, 1, 1),' ', substr(`epithete_infra_sp`, 1, 3),'","', substr(`genre`, 1, 3),' ',substr(`epithete_sp`, 1, 2),' ', substr(`epithete_infra_sp`, 1, 3), '","', substr(`genre`, 1, 3),' ',substr(`epithete_sp`, 1, 3),' ', substr(`epithete_infra_sp`, 1, 3), '","', substr(`genre`, 1, 4),' ',substr(`epithete_sp`, 1, 1),' ', substr(`epithete_infra_sp`, 1, 3), '","', substr(`genre`, 1, 4),' ',substr(`epithete_sp`, 1, 2),' ', substr(`epithete_infra_sp`, 1, 3), '","', substr(`genre`, 1, 4),' ',substr(`epithete_sp`, 1, 3),' ', substr(`epithete_infra_sp`, 1, 3),'"]') |
WHEN b.rang = 220 THEN |
concat('["',substr(`genre`, 1, 1), '","', substr(`genre`, 1, 2), '","', substr(`genre`, 1, 3), '","', substr(`genre`, 1, 4), '"]') |
WHEN b.rang < 220 THEN |
concat('["',substr(`nom_supra_generique`, 1, 1), '","', substr(`nom_supra_generique`, 1, 2), '","', substr(`nom_supra_generique`, 1, 3), '","', substr(`nom_supra_generique`, 1, 4), '"]') |
ELSE concat('["',substr(`genre`, 1, 3),substr(`epithete_sp`, 1, 3), '","', substr(`genre`, 1, 2),' ',substr(`epithete_sp`, 1, 1), '","', substr(`genre`, 1, 2),' ',substr(`epithete_sp`, 1, 2), '","', substr(`genre`, 1, 2),' ',substr(`epithete_sp`, 1, 3), '","', substr(`genre`, 1, 3),' ',substr(`epithete_sp`, 1, 1),'","', substr(`genre`, 1, 3),' ',substr(`epithete_sp`, 1, 2), '","', substr(`genre`, 1, 3),' ',substr(`epithete_sp`, 1, 3), '","', substr(`genre`, 1, 4),' ',substr(`epithete_sp`, 1, 1), '","', substr(`genre`, 1, 4),' ',substr(`epithete_sp`, 1, 2), '","', substr(`genre`, 1, 4),' ',substr(`epithete_sp`, 1, 3),'"]') |
END as isfan_shortcuts |
FROM `isfan` b WHERE b.num_nom_retenu not in (SELECT distinct num_nom_retenu FROM isfan WHERE num_nom != num_nom_retenu and b.num_nom_retenu != 0) AND (b.num_nom = b.num_nom_retenu OR b.num_nom_retenu = "0") AND b.nom_sci != ' ' |
/branches/v2.0-betulales/scripts/modules/algolia/algolia_bdtxa.sql |
---|
New file |
0,0 → 1,26 |
SELECT b.num_nom AS bdtxa_num_nom, b.num_nom_retenu AS bdtxa_num_nom_retenu, b.num_tax_sup AS bdtxa_num_tax_sup, b.rang AS bdtxa_rang, b.nom_sci AS bdtxa_nom_sci, b.auteur AS bdtxa_auteur, b.annee AS bdtxa_annee, b.`biblio_origine` AS bdtxa_biblio, b.nom_francais AS bdtxa_nom_francais, bdtxa_synonymes, b.`nom_supra_generique` AS bdtxa_nom_supra_generique, b.`genre` AS bdtxa_genre, b.`epithete_sp` AS bdtxa_epithete_sp, b.`type_epithete` AS bdtxa_type_epithete, b.`epithete_infra_sp` AS bdtxa_epithete_infra_sp, b.`cultivar` AS bdtxa_cultivar, b.`cultivar_groupe` AS bdtxa_cultivar_groupe, concat('https://beta.tela-botanica.org/test/bdtxa-nn-', b.`num_nom_retenu`) as bdtxa_url, |
CASE WHEN b.rang > 290 THEN |
concat('["',substr(`genre`, 1, 3),substr(`epithete_sp`, 1, 3), '","', substr(`genre`, 1, 2),' ',substr(`epithete_sp`, 1, 1),' ', substr(`epithete_infra_sp`, 1, 1), '","', substr(`genre`, 1, 2),' ',substr(`epithete_sp`, 1, 2), ' ', substr(`epithete_infra_sp`, 1, 1),'","', substr(`genre`, 1, 2),' ',substr(`epithete_sp`, 1, 3),' ', substr(`epithete_infra_sp`, 1, 1), '","', substr(`genre`, 1, 3),' ',substr(`epithete_sp`, 1, 1),' ', substr(`epithete_infra_sp`, 1, 1),'","', substr(`genre`, 1, 3),' ',substr(`epithete_sp`, 1, 2),' ', substr(`epithete_infra_sp`, 1, 1), '","', substr(`genre`, 1, 3),' ',substr(`epithete_sp`, 1, 3),' ', substr(`epithete_infra_sp`, 1, 1), '","', substr(`genre`, 1, 4),' ',substr(`epithete_sp`, 1, 1),' ', substr(`epithete_infra_sp`, 1, 1), '","', substr(`genre`, 1, 4),' ',substr(`epithete_sp`, 1, 2),' ', substr(`epithete_infra_sp`, 1, 1), '","', substr(`genre`, 1, 4),' ',substr(`epithete_sp`, 1, 3),' ', substr(`epithete_infra_sp`, 1, 1),'","', |
substr(`genre`, 1, 2),' ',substr(`epithete_sp`, 1, 1),' ', substr(`epithete_infra_sp`, 1, 2), '","', substr(`genre`, 1, 2),' ',substr(`epithete_sp`, 1, 2), ' ', substr(`epithete_infra_sp`, 1, 2),'","', substr(`genre`, 1, 2),' ',substr(`epithete_sp`, 1, 3),' ', substr(`epithete_infra_sp`, 1, 2), '","', substr(`genre`, 1, 3),' ',substr(`epithete_sp`, 1, 1),' ', substr(`epithete_infra_sp`, 1, 2),'","', substr(`genre`, 1, 3),' ',substr(`epithete_sp`, 1, 2),' ', substr(`epithete_infra_sp`, 1, 2), '","', substr(`genre`, 1, 3),' ',substr(`epithete_sp`, 1, 3),' ', substr(`epithete_infra_sp`, 1, 2), '","', substr(`genre`, 1, 4),' ',substr(`epithete_sp`, 1, 1),' ', substr(`epithete_infra_sp`, 1, 2), '","', substr(`genre`, 1, 4),' ',substr(`epithete_sp`, 1, 2),' ', substr(`epithete_infra_sp`, 1, 2), '","', substr(`genre`, 1, 4),' ',substr(`epithete_sp`, 1, 3),' ', substr(`epithete_infra_sp`, 1, 2),'","', |
substr(`genre`, 1, 2),' ',substr(`epithete_sp`, 1, 1),' ', substr(`epithete_infra_sp`, 1, 3), '","', substr(`genre`, 1, 2),' ',substr(`epithete_sp`, 1, 2), ' ', substr(`epithete_infra_sp`, 1, 3),'","', substr(`genre`, 1, 2),' ',substr(`epithete_sp`, 1, 3),' ', substr(`epithete_infra_sp`, 1, 3), '","', substr(`genre`, 1, 3),' ',substr(`epithete_sp`, 1, 1),' ', substr(`epithete_infra_sp`, 1, 3),'","', substr(`genre`, 1, 3),' ',substr(`epithete_sp`, 1, 2),' ', substr(`epithete_infra_sp`, 1, 3), '","', substr(`genre`, 1, 3),' ',substr(`epithete_sp`, 1, 3),' ', substr(`epithete_infra_sp`, 1, 3), '","', substr(`genre`, 1, 4),' ',substr(`epithete_sp`, 1, 1),' ', substr(`epithete_infra_sp`, 1, 3), '","', substr(`genre`, 1, 4),' ',substr(`epithete_sp`, 1, 2),' ', substr(`epithete_infra_sp`, 1, 3), '","', substr(`genre`, 1, 4),' ',substr(`epithete_sp`, 1, 3),' ', substr(`epithete_infra_sp`, 1, 3),'"]') |
WHEN b.rang = 220 THEN |
concat('["',substr(`genre`, 1, 1), '","', substr(`genre`, 1, 2), '","', substr(`genre`, 1, 3), '","', substr(`genre`, 1, 4), '"]') |
WHEN b.rang < 220 THEN |
concat('["',substr(`nom_supra_generique`, 1, 1), '","', substr(`nom_supra_generique`, 1, 2), '","', substr(`nom_supra_generique`, 1, 3), '","', substr(`nom_supra_generique`, 1, 4), '"]') |
ELSE concat('["',substr(`genre`, 1, 3),substr(`epithete_sp`, 1, 3), '","', substr(`genre`, 1, 2),' ',substr(`epithete_sp`, 1, 1), '","', substr(`genre`, 1, 2),' ',substr(`epithete_sp`, 1, 2), '","', substr(`genre`, 1, 2),' ',substr(`epithete_sp`, 1, 3), '","', substr(`genre`, 1, 3),' ',substr(`epithete_sp`, 1, 1),'","', substr(`genre`, 1, 3),' ',substr(`epithete_sp`, 1, 2), '","', substr(`genre`, 1, 3),' ',substr(`epithete_sp`, 1, 3), '","', substr(`genre`, 1, 4),' ',substr(`epithete_sp`, 1, 1), '","', substr(`genre`, 1, 4),' ',substr(`epithete_sp`, 1, 2), '","', substr(`genre`, 1, 4),' ',substr(`epithete_sp`, 1, 3),'"]') |
END as bdtxa_shortcuts |
FROM `bdtxa` b, (SELECT num_nom_retenu, concat('[',group_concat('"',nom_sci,' ',auteur,'"'),']') AS bdtxa_synonymes FROM bdtxa WHERE num_nom != num_nom_retenu AND num_nom_retenu != 0 GROUP BY `num_nom_retenu`) as c |
WHERE b.num_nom_retenu = c.num_nom_retenu AND b.num_nom = b.num_nom_retenu |
UNION |
SELECT b.num_nom AS bdtxa_num_nom, b.num_nom_retenu AS bdtxa_num_nom_retenu, b.num_tax_sup AS bdtxa_num_tax_sup, b.rang AS bdtxa_rang, b.nom_sci AS bdtxa_nom_sci, b.auteur AS bdtxa_auteur, b.annee AS bdtxa_annee, b.`biblio_origine` AS bdtxa_biblio, b.nom_francais AS bdtxa_nom_francais, '' as bdtxa_synonymes, b.`nom_supra_generique` AS bdtxa_nom_supra_generique, b.`genre` AS bdtxa_genre, b.`epithete_sp` AS bdtxa_epithete_sp, b.`type_epithete` AS bdtxa_type_epithete, b.`epithete_infra_sp` AS bdtxa_epithete_infra_sp, b.`cultivar` AS bdtxa_cultivar, b.`cultivar_groupe` AS bdtxa_cultivar_groupe, concat('https://beta.tela-botanica.org/test/bdtxa-nn-', b.`num_nom_retenu`) as bdtxa_url, |
CASE WHEN b.rang > 290 THEN |
concat('["',substr(`genre`, 1, 3),substr(`epithete_sp`, 1, 3), '","', substr(`genre`, 1, 2),' ',substr(`epithete_sp`, 1, 1),' ', substr(`epithete_infra_sp`, 1, 1), '","', substr(`genre`, 1, 2),' ',substr(`epithete_sp`, 1, 2), ' ', substr(`epithete_infra_sp`, 1, 1),'","', substr(`genre`, 1, 2),' ',substr(`epithete_sp`, 1, 3),' ', substr(`epithete_infra_sp`, 1, 1), '","', substr(`genre`, 1, 3),' ',substr(`epithete_sp`, 1, 1),' ', substr(`epithete_infra_sp`, 1, 1),'","', substr(`genre`, 1, 3),' ',substr(`epithete_sp`, 1, 2),' ', substr(`epithete_infra_sp`, 1, 1), '","', substr(`genre`, 1, 3),' ',substr(`epithete_sp`, 1, 3),' ', substr(`epithete_infra_sp`, 1, 1), '","', substr(`genre`, 1, 4),' ',substr(`epithete_sp`, 1, 1),' ', substr(`epithete_infra_sp`, 1, 1), '","', substr(`genre`, 1, 4),' ',substr(`epithete_sp`, 1, 2),' ', substr(`epithete_infra_sp`, 1, 1), '","', substr(`genre`, 1, 4),' ',substr(`epithete_sp`, 1, 3),' ', substr(`epithete_infra_sp`, 1, 1),'","', |
substr(`genre`, 1, 2),' ',substr(`epithete_sp`, 1, 1),' ', substr(`epithete_infra_sp`, 1, 2), '","', substr(`genre`, 1, 2),' ',substr(`epithete_sp`, 1, 2), ' ', substr(`epithete_infra_sp`, 1, 2),'","', substr(`genre`, 1, 2),' ',substr(`epithete_sp`, 1, 3),' ', substr(`epithete_infra_sp`, 1, 2), '","', substr(`genre`, 1, 3),' ',substr(`epithete_sp`, 1, 1),' ', substr(`epithete_infra_sp`, 1, 2),'","', substr(`genre`, 1, 3),' ',substr(`epithete_sp`, 1, 2),' ', substr(`epithete_infra_sp`, 1, 2), '","', substr(`genre`, 1, 3),' ',substr(`epithete_sp`, 1, 3),' ', substr(`epithete_infra_sp`, 1, 2), '","', substr(`genre`, 1, 4),' ',substr(`epithete_sp`, 1, 1),' ', substr(`epithete_infra_sp`, 1, 2), '","', substr(`genre`, 1, 4),' ',substr(`epithete_sp`, 1, 2),' ', substr(`epithete_infra_sp`, 1, 2), '","', substr(`genre`, 1, 4),' ',substr(`epithete_sp`, 1, 3),' ', substr(`epithete_infra_sp`, 1, 2),'","', |
substr(`genre`, 1, 2),' ',substr(`epithete_sp`, 1, 1),' ', substr(`epithete_infra_sp`, 1, 3), '","', substr(`genre`, 1, 2),' ',substr(`epithete_sp`, 1, 2), ' ', substr(`epithete_infra_sp`, 1, 3),'","', substr(`genre`, 1, 2),' ',substr(`epithete_sp`, 1, 3),' ', substr(`epithete_infra_sp`, 1, 3), '","', substr(`genre`, 1, 3),' ',substr(`epithete_sp`, 1, 1),' ', substr(`epithete_infra_sp`, 1, 3),'","', substr(`genre`, 1, 3),' ',substr(`epithete_sp`, 1, 2),' ', substr(`epithete_infra_sp`, 1, 3), '","', substr(`genre`, 1, 3),' ',substr(`epithete_sp`, 1, 3),' ', substr(`epithete_infra_sp`, 1, 3), '","', substr(`genre`, 1, 4),' ',substr(`epithete_sp`, 1, 1),' ', substr(`epithete_infra_sp`, 1, 3), '","', substr(`genre`, 1, 4),' ',substr(`epithete_sp`, 1, 2),' ', substr(`epithete_infra_sp`, 1, 3), '","', substr(`genre`, 1, 4),' ',substr(`epithete_sp`, 1, 3),' ', substr(`epithete_infra_sp`, 1, 3),'"]') |
WHEN b.rang = 220 THEN |
concat('["',substr(`genre`, 1, 1), '","', substr(`genre`, 1, 2), '","', substr(`genre`, 1, 3), '","', substr(`genre`, 1, 4), '"]') |
WHEN b.rang < 220 THEN |
concat('["',substr(`nom_supra_generique`, 1, 1), '","', substr(`nom_supra_generique`, 1, 2), '","', substr(`nom_supra_generique`, 1, 3), '","', substr(`nom_supra_generique`, 1, 4), '"]') |
ELSE concat('["',substr(`genre`, 1, 3),substr(`epithete_sp`, 1, 3), '","', substr(`genre`, 1, 2),' ',substr(`epithete_sp`, 1, 1), '","', substr(`genre`, 1, 2),' ',substr(`epithete_sp`, 1, 2), '","', substr(`genre`, 1, 2),' ',substr(`epithete_sp`, 1, 3), '","', substr(`genre`, 1, 3),' ',substr(`epithete_sp`, 1, 1),'","', substr(`genre`, 1, 3),' ',substr(`epithete_sp`, 1, 2), '","', substr(`genre`, 1, 3),' ',substr(`epithete_sp`, 1, 3), '","', substr(`genre`, 1, 4),' ',substr(`epithete_sp`, 1, 1), '","', substr(`genre`, 1, 4),' ',substr(`epithete_sp`, 1, 2), '","', substr(`genre`, 1, 4),' ',substr(`epithete_sp`, 1, 3),'"]') |
END as bdtxa_shortcuts |
FROM `bdtxa` b WHERE b.num_nom_retenu not in (SELECT distinct num_nom_retenu FROM bdtxa WHERE num_nom != num_nom_retenu and b.num_nom_retenu != 0) AND (b.num_nom = b.num_nom_retenu OR b.num_nom_retenu = "0") |
/branches/v2.0-betulales/scripts/modules/algolia/algolia.default.ini |
---|
New file |
0,0 → 1,12 |
; Fichier de configuration pour l'API Algolia |
; Les informations demandées se trouvent sur https://www.algolia.com/api-keys |
; ID de l'application |
algolia_application_id = "" |
; La clef d'API doit permettre les opérations en écriture |
; ATTENTION ! ne jamais la rendre publique |
algolia_api_key = "" |
; index à utiliser |
algolia_index = "dev_Taxons" |
; référentiels à fusionner avant import / mise à jour |
algolia_referentiels = "bdtxa,bdtfx,isfan,apd" |
/branches/v2.0-betulales/scripts/modules/algolia/algolia_apd.sql |
---|
New file |
0,0 → 1,26 |
SELECT b.num_nom AS apd_num_nom, b.num_nom_retenu AS apd_num_nom_retenu, b.num_tax_sup AS apd_num_tax_sup, b.rang AS apd_rang, b.nom_sci AS apd_nom_sci, b.auteur AS apd_auteur, b.annee AS apd_annee, b.`biblio_origine` AS apd_biblio, apd_synonymes, b.`nom_supra_generique` AS apd_nom_supra_generique, b.`genre` AS apd_genre, b.`epithete_sp` AS apd_epithete_sp, b.`type_epithete` AS apd_type_epithete, b.`epithete_infra_sp` AS apd_epithete_infra_sp, b.`cultivar` AS apd_cultivar, b.`cultivar_groupe` AS apd_cultivar_groupe, concat('https://beta.tela-botanica.org/test/apd-nn-', b.`num_nom_retenu`) as apd_url, |
CASE WHEN b.rang > 290 THEN |
concat('["',substr(`genre`, 1, 3),substr(`epithete_sp`, 1, 3), '","', substr(`genre`, 1, 2),' ',substr(`epithete_sp`, 1, 1),' ', substr(`epithete_infra_sp`, 1, 1), '","', substr(`genre`, 1, 2),' ',substr(`epithete_sp`, 1, 2), ' ', substr(`epithete_infra_sp`, 1, 1),'","', substr(`genre`, 1, 2),' ',substr(`epithete_sp`, 1, 3),' ', substr(`epithete_infra_sp`, 1, 1), '","', substr(`genre`, 1, 3),' ',substr(`epithete_sp`, 1, 1),' ', substr(`epithete_infra_sp`, 1, 1),'","', substr(`genre`, 1, 3),' ',substr(`epithete_sp`, 1, 2),' ', substr(`epithete_infra_sp`, 1, 1), '","', substr(`genre`, 1, 3),' ',substr(`epithete_sp`, 1, 3),' ', substr(`epithete_infra_sp`, 1, 1), '","', substr(`genre`, 1, 4),' ',substr(`epithete_sp`, 1, 1),' ', substr(`epithete_infra_sp`, 1, 1), '","', substr(`genre`, 1, 4),' ',substr(`epithete_sp`, 1, 2),' ', substr(`epithete_infra_sp`, 1, 1), '","', substr(`genre`, 1, 4),' ',substr(`epithete_sp`, 1, 3),' ', substr(`epithete_infra_sp`, 1, 1),'","', |
substr(`genre`, 1, 2),' ',substr(`epithete_sp`, 1, 1),' ', substr(`epithete_infra_sp`, 1, 2), '","', substr(`genre`, 1, 2),' ',substr(`epithete_sp`, 1, 2), ' ', substr(`epithete_infra_sp`, 1, 2),'","', substr(`genre`, 1, 2),' ',substr(`epithete_sp`, 1, 3),' ', substr(`epithete_infra_sp`, 1, 2), '","', substr(`genre`, 1, 3),' ',substr(`epithete_sp`, 1, 1),' ', substr(`epithete_infra_sp`, 1, 2),'","', substr(`genre`, 1, 3),' ',substr(`epithete_sp`, 1, 2),' ', substr(`epithete_infra_sp`, 1, 2), '","', substr(`genre`, 1, 3),' ',substr(`epithete_sp`, 1, 3),' ', substr(`epithete_infra_sp`, 1, 2), '","', substr(`genre`, 1, 4),' ',substr(`epithete_sp`, 1, 1),' ', substr(`epithete_infra_sp`, 1, 2), '","', substr(`genre`, 1, 4),' ',substr(`epithete_sp`, 1, 2),' ', substr(`epithete_infra_sp`, 1, 2), '","', substr(`genre`, 1, 4),' ',substr(`epithete_sp`, 1, 3),' ', substr(`epithete_infra_sp`, 1, 2),'","', |
substr(`genre`, 1, 2),' ',substr(`epithete_sp`, 1, 1),' ', substr(`epithete_infra_sp`, 1, 3), '","', substr(`genre`, 1, 2),' ',substr(`epithete_sp`, 1, 2), ' ', substr(`epithete_infra_sp`, 1, 3),'","', substr(`genre`, 1, 2),' ',substr(`epithete_sp`, 1, 3),' ', substr(`epithete_infra_sp`, 1, 3), '","', substr(`genre`, 1, 3),' ',substr(`epithete_sp`, 1, 1),' ', substr(`epithete_infra_sp`, 1, 3),'","', substr(`genre`, 1, 3),' ',substr(`epithete_sp`, 1, 2),' ', substr(`epithete_infra_sp`, 1, 3), '","', substr(`genre`, 1, 3),' ',substr(`epithete_sp`, 1, 3),' ', substr(`epithete_infra_sp`, 1, 3), '","', substr(`genre`, 1, 4),' ',substr(`epithete_sp`, 1, 1),' ', substr(`epithete_infra_sp`, 1, 3), '","', substr(`genre`, 1, 4),' ',substr(`epithete_sp`, 1, 2),' ', substr(`epithete_infra_sp`, 1, 3), '","', substr(`genre`, 1, 4),' ',substr(`epithete_sp`, 1, 3),' ', substr(`epithete_infra_sp`, 1, 3),'"]') |
WHEN b.rang = 220 THEN |
concat('["',substr(`genre`, 1, 1), '","', substr(`genre`, 1, 2), '","', substr(`genre`, 1, 3), '","', substr(`genre`, 1, 4), '"]') |
WHEN b.rang < 220 THEN |
concat('["',substr(`nom_supra_generique`, 1, 1), '","', substr(`nom_supra_generique`, 1, 2), '","', substr(`nom_supra_generique`, 1, 3), '","', substr(`nom_supra_generique`, 1, 4), '"]') |
ELSE concat('["',substr(`genre`, 1, 3),substr(`epithete_sp`, 1, 3), '","', substr(`genre`, 1, 2),' ',substr(`epithete_sp`, 1, 1), '","', substr(`genre`, 1, 2),' ',substr(`epithete_sp`, 1, 2), '","', substr(`genre`, 1, 2),' ',substr(`epithete_sp`, 1, 3), '","', substr(`genre`, 1, 3),' ',substr(`epithete_sp`, 1, 1),'","', substr(`genre`, 1, 3),' ',substr(`epithete_sp`, 1, 2), '","', substr(`genre`, 1, 3),' ',substr(`epithete_sp`, 1, 3), '","', substr(`genre`, 1, 4),' ',substr(`epithete_sp`, 1, 1), '","', substr(`genre`, 1, 4),' ',substr(`epithete_sp`, 1, 2), '","', substr(`genre`, 1, 4),' ',substr(`epithete_sp`, 1, 3),'"]') |
END as apd_shortcuts |
FROM `apd` b, (SELECT num_nom_retenu, concat('[',group_concat('"',nom_sci,' ',auteur,'"'),']') AS apd_synonymes FROM apd WHERE num_nom != num_nom_retenu AND num_nom_retenu != 0 GROUP BY `num_nom_retenu`) as c |
WHERE (b.num_nom_retenu = c.num_nom_retenu) AND b.num_nom = b.num_nom_retenu |
UNION |
SELECT b.num_nom AS apd_num_nom, b.num_nom_retenu AS apd_num_nom_retenu, b.num_tax_sup AS apd_num_tax_sup, b.rang AS apd_rang, b.nom_sci AS apd_nom_sci, b.auteur AS apd_auteur, b.annee AS apd_annee, b.`biblio_origine` AS apd_biblio, '' as apd_synonymes, b.`nom_supra_generique` AS apd_nom_supra_generique, b.`genre` AS apd_genre, b.`epithete_sp` AS apd_epithete_sp, b.`type_epithete` AS apd_type_epithete, b.`epithete_infra_sp` AS apd_epithete_infra_sp, b.`cultivar` AS apd_cultivar, b.`cultivar_groupe` AS apd_cultivar_groupe, concat('https://beta.tela-botanica.org/test/apd-nn-', b.`num_nom_retenu`) as apd_url, |
CASE WHEN b.rang > 290 THEN |
concat('["',substr(`genre`, 1, 3),substr(`epithete_sp`, 1, 3), '","', substr(`genre`, 1, 2),' ',substr(`epithete_sp`, 1, 1),' ', substr(`epithete_infra_sp`, 1, 1), '","', substr(`genre`, 1, 2),' ',substr(`epithete_sp`, 1, 2), ' ', substr(`epithete_infra_sp`, 1, 1),'","', substr(`genre`, 1, 2),' ',substr(`epithete_sp`, 1, 3),' ', substr(`epithete_infra_sp`, 1, 1), '","', substr(`genre`, 1, 3),' ',substr(`epithete_sp`, 1, 1),' ', substr(`epithete_infra_sp`, 1, 1),'","', substr(`genre`, 1, 3),' ',substr(`epithete_sp`, 1, 2),' ', substr(`epithete_infra_sp`, 1, 1), '","', substr(`genre`, 1, 3),' ',substr(`epithete_sp`, 1, 3),' ', substr(`epithete_infra_sp`, 1, 1), '","', substr(`genre`, 1, 4),' ',substr(`epithete_sp`, 1, 1),' ', substr(`epithete_infra_sp`, 1, 1), '","', substr(`genre`, 1, 4),' ',substr(`epithete_sp`, 1, 2),' ', substr(`epithete_infra_sp`, 1, 1), '","', substr(`genre`, 1, 4),' ',substr(`epithete_sp`, 1, 3),' ', substr(`epithete_infra_sp`, 1, 1),'","', |
substr(`genre`, 1, 2),' ',substr(`epithete_sp`, 1, 1),' ', substr(`epithete_infra_sp`, 1, 2), '","', substr(`genre`, 1, 2),' ',substr(`epithete_sp`, 1, 2), ' ', substr(`epithete_infra_sp`, 1, 2),'","', substr(`genre`, 1, 2),' ',substr(`epithete_sp`, 1, 3),' ', substr(`epithete_infra_sp`, 1, 2), '","', substr(`genre`, 1, 3),' ',substr(`epithete_sp`, 1, 1),' ', substr(`epithete_infra_sp`, 1, 2),'","', substr(`genre`, 1, 3),' ',substr(`epithete_sp`, 1, 2),' ', substr(`epithete_infra_sp`, 1, 2), '","', substr(`genre`, 1, 3),' ',substr(`epithete_sp`, 1, 3),' ', substr(`epithete_infra_sp`, 1, 2), '","', substr(`genre`, 1, 4),' ',substr(`epithete_sp`, 1, 1),' ', substr(`epithete_infra_sp`, 1, 2), '","', substr(`genre`, 1, 4),' ',substr(`epithete_sp`, 1, 2),' ', substr(`epithete_infra_sp`, 1, 2), '","', substr(`genre`, 1, 4),' ',substr(`epithete_sp`, 1, 3),' ', substr(`epithete_infra_sp`, 1, 2),'","', |
substr(`genre`, 1, 2),' ',substr(`epithete_sp`, 1, 1),' ', substr(`epithete_infra_sp`, 1, 3), '","', substr(`genre`, 1, 2),' ',substr(`epithete_sp`, 1, 2), ' ', substr(`epithete_infra_sp`, 1, 3),'","', substr(`genre`, 1, 2),' ',substr(`epithete_sp`, 1, 3),' ', substr(`epithete_infra_sp`, 1, 3), '","', substr(`genre`, 1, 3),' ',substr(`epithete_sp`, 1, 1),' ', substr(`epithete_infra_sp`, 1, 3),'","', substr(`genre`, 1, 3),' ',substr(`epithete_sp`, 1, 2),' ', substr(`epithete_infra_sp`, 1, 3), '","', substr(`genre`, 1, 3),' ',substr(`epithete_sp`, 1, 3),' ', substr(`epithete_infra_sp`, 1, 3), '","', substr(`genre`, 1, 4),' ',substr(`epithete_sp`, 1, 1),' ', substr(`epithete_infra_sp`, 1, 3), '","', substr(`genre`, 1, 4),' ',substr(`epithete_sp`, 1, 2),' ', substr(`epithete_infra_sp`, 1, 3), '","', substr(`genre`, 1, 4),' ',substr(`epithete_sp`, 1, 3),' ', substr(`epithete_infra_sp`, 1, 3),'"]') |
WHEN b.rang = 220 THEN |
concat('["',substr(`genre`, 1, 1), '","', substr(`genre`, 1, 2), '","', substr(`genre`, 1, 3), '","', substr(`genre`, 1, 4), '"]') |
WHEN b.rang < 220 THEN |
concat('["',substr(`nom_supra_generique`, 1, 1), '","', substr(`nom_supra_generique`, 1, 2), '","', substr(`nom_supra_generique`, 1, 3), '","', substr(`nom_supra_generique`, 1, 4), '"]') |
ELSE concat('["',substr(`genre`, 1, 3),substr(`epithete_sp`, 1, 3), '","', substr(`genre`, 1, 2),' ',substr(`epithete_sp`, 1, 1), '","', substr(`genre`, 1, 2),' ',substr(`epithete_sp`, 1, 2), '","', substr(`genre`, 1, 2),' ',substr(`epithete_sp`, 1, 3), '","', substr(`genre`, 1, 3),' ',substr(`epithete_sp`, 1, 1),'","', substr(`genre`, 1, 3),' ',substr(`epithete_sp`, 1, 2), '","', substr(`genre`, 1, 3),' ',substr(`epithete_sp`, 1, 3), '","', substr(`genre`, 1, 4),' ',substr(`epithete_sp`, 1, 1), '","', substr(`genre`, 1, 4),' ',substr(`epithete_sp`, 1, 2), '","', substr(`genre`, 1, 4),' ',substr(`epithete_sp`, 1, 3),'"]') |
END as apd_shortcuts |
FROM `apd` b WHERE b.num_nom_retenu not in (SELECT distinct num_nom_retenu FROM apd WHERE num_nom != num_nom_retenu and b.num_nom_retenu != 0) AND (b.num_nom = b.num_nom_retenu OR b.num_nom_retenu = "0") |
/branches/v2.0-betulales/scripts/modules/algolia/algolia_bdtfx.sql |
---|
New file |
0,0 → 1,26 |
SELECT b.num_nom AS bdtfx_num_nom, b.num_nom_retenu AS bdtfx_num_nom_retenu, b.num_tax_sup AS bdtfx_num_tax_sup, b.rang AS bdtfx_rang, b.nom_sci AS bdtfx_nom_sci, b.auteur AS bdtfx_auteur, b.annee AS bdtfx_annee, b.`biblio_origine` AS bdtfx_biblio, b.nom_francais AS bdtfx_nom_francais, bdtfx_synonymes, b.`nom_supra_generique` AS bdtfx_nom_supra_generique, b.`genre` AS bdtfx_genre, b.`epithete_sp` AS bdtfx_epithete_sp, b.`type_epithete` AS bdtfx_type_epithete, b.`epithete_infra_sp` AS bdtfx_epithete_infra_sp, b.`cultivar` AS bdtfx_cultivar, b.`cultivar_groupe` AS bdtfx_cultivar_groupe, concat('https://beta.tela-botanica.org/test/bdtfx-nn-', b.`num_nom_retenu`) as bdtfx_url, |
CASE WHEN b.rang > 290 THEN |
concat('["',substr(`genre`, 1, 3),substr(`epithete_sp`, 1, 3), '","', substr(`genre`, 1, 2),' ',substr(`epithete_sp`, 1, 1),' ', substr(`epithete_infra_sp`, 1, 1), '","', substr(`genre`, 1, 2),' ',substr(`epithete_sp`, 1, 2), ' ', substr(`epithete_infra_sp`, 1, 1),'","', substr(`genre`, 1, 2),' ',substr(`epithete_sp`, 1, 3),' ', substr(`epithete_infra_sp`, 1, 1), '","', substr(`genre`, 1, 3),' ',substr(`epithete_sp`, 1, 1),' ', substr(`epithete_infra_sp`, 1, 1),'","', substr(`genre`, 1, 3),' ',substr(`epithete_sp`, 1, 2),' ', substr(`epithete_infra_sp`, 1, 1), '","', substr(`genre`, 1, 3),' ',substr(`epithete_sp`, 1, 3),' ', substr(`epithete_infra_sp`, 1, 1), '","', substr(`genre`, 1, 4),' ',substr(`epithete_sp`, 1, 1),' ', substr(`epithete_infra_sp`, 1, 1), '","', substr(`genre`, 1, 4),' ',substr(`epithete_sp`, 1, 2),' ', substr(`epithete_infra_sp`, 1, 1), '","', substr(`genre`, 1, 4),' ',substr(`epithete_sp`, 1, 3),' ', substr(`epithete_infra_sp`, 1, 1),'","', |
substr(`genre`, 1, 2),' ',substr(`epithete_sp`, 1, 1),' ', substr(`epithete_infra_sp`, 1, 2), '","', substr(`genre`, 1, 2),' ',substr(`epithete_sp`, 1, 2), ' ', substr(`epithete_infra_sp`, 1, 2),'","', substr(`genre`, 1, 2),' ',substr(`epithete_sp`, 1, 3),' ', substr(`epithete_infra_sp`, 1, 2), '","', substr(`genre`, 1, 3),' ',substr(`epithete_sp`, 1, 1),' ', substr(`epithete_infra_sp`, 1, 2),'","', substr(`genre`, 1, 3),' ',substr(`epithete_sp`, 1, 2),' ', substr(`epithete_infra_sp`, 1, 2), '","', substr(`genre`, 1, 3),' ',substr(`epithete_sp`, 1, 3),' ', substr(`epithete_infra_sp`, 1, 2), '","', substr(`genre`, 1, 4),' ',substr(`epithete_sp`, 1, 1),' ', substr(`epithete_infra_sp`, 1, 2), '","', substr(`genre`, 1, 4),' ',substr(`epithete_sp`, 1, 2),' ', substr(`epithete_infra_sp`, 1, 2), '","', substr(`genre`, 1, 4),' ',substr(`epithete_sp`, 1, 3),' ', substr(`epithete_infra_sp`, 1, 2),'","', |
substr(`genre`, 1, 2),' ',substr(`epithete_sp`, 1, 1),' ', substr(`epithete_infra_sp`, 1, 3), '","', substr(`genre`, 1, 2),' ',substr(`epithete_sp`, 1, 2), ' ', substr(`epithete_infra_sp`, 1, 3),'","', substr(`genre`, 1, 2),' ',substr(`epithete_sp`, 1, 3),' ', substr(`epithete_infra_sp`, 1, 3), '","', substr(`genre`, 1, 3),' ',substr(`epithete_sp`, 1, 1),' ', substr(`epithete_infra_sp`, 1, 3),'","', substr(`genre`, 1, 3),' ',substr(`epithete_sp`, 1, 2),' ', substr(`epithete_infra_sp`, 1, 3), '","', substr(`genre`, 1, 3),' ',substr(`epithete_sp`, 1, 3),' ', substr(`epithete_infra_sp`, 1, 3), '","', substr(`genre`, 1, 4),' ',substr(`epithete_sp`, 1, 1),' ', substr(`epithete_infra_sp`, 1, 3), '","', substr(`genre`, 1, 4),' ',substr(`epithete_sp`, 1, 2),' ', substr(`epithete_infra_sp`, 1, 3), '","', substr(`genre`, 1, 4),' ',substr(`epithete_sp`, 1, 3),' ', substr(`epithete_infra_sp`, 1, 3),'"]') |
WHEN b.rang = 220 THEN |
concat('["',substr(`genre`, 1, 1), '","', substr(`genre`, 1, 2), '","', substr(`genre`, 1, 3), '","', substr(`genre`, 1, 4), '"]') |
WHEN b.rang < 220 THEN |
concat('["',substr(`nom_supra_generique`, 1, 1), '","', substr(`nom_supra_generique`, 1, 2), '","', substr(`nom_supra_generique`, 1, 3), '","', substr(`nom_supra_generique`, 1, 4), '"]') |
ELSE concat('["',substr(`genre`, 1, 3),substr(`epithete_sp`, 1, 3), '","', substr(`genre`, 1, 2),' ',substr(`epithete_sp`, 1, 1), '","', substr(`genre`, 1, 2),' ',substr(`epithete_sp`, 1, 2), '","', substr(`genre`, 1, 2),' ',substr(`epithete_sp`, 1, 3), '","', substr(`genre`, 1, 3),' ',substr(`epithete_sp`, 1, 1),'","', substr(`genre`, 1, 3),' ',substr(`epithete_sp`, 1, 2), '","', substr(`genre`, 1, 3),' ',substr(`epithete_sp`, 1, 3), '","', substr(`genre`, 1, 4),' ',substr(`epithete_sp`, 1, 1), '","', substr(`genre`, 1, 4),' ',substr(`epithete_sp`, 1, 2), '","', substr(`genre`, 1, 4),' ',substr(`epithete_sp`, 1, 3),'"]') |
END as bdtfx_shortcuts |
FROM `bdtfx` b, (SELECT num_nom_retenu, concat('[',group_concat('"',nom_sci,' ',auteur,'"'),']') AS bdtfx_synonymes FROM bdtfx WHERE num_nom != num_nom_retenu AND num_nom_retenu != 0 GROUP BY `num_nom_retenu`) as c |
WHERE b.num_nom_retenu = c.num_nom_retenu AND b.num_nom = b.num_nom_retenu |
UNION |
SELECT b.num_nom AS bdtfx_num_nom, b.num_nom_retenu AS bdtfx_num_nom_retenu, b.num_tax_sup AS bdtfx_num_tax_sup, b.rang AS bdtfx_rang, b.nom_sci AS bdtfx_nom_sci, b.auteur AS bdtfx_auteur, b.annee AS bdtfx_annee, b.`biblio_origine` AS bdtfx_biblio, b.nom_francais AS bdtfx_nom_francais, '' as bdtfx_synonymes, b.`nom_supra_generique` AS bdtfx_nom_supra_generique, b.`genre` AS bdtfx_genre, b.`epithete_sp` AS bdtfx_epithete_sp, b.`type_epithete` AS bdtfx_type_epithete, b.`epithete_infra_sp` AS bdtfx_epithete_infra_sp, b.`cultivar` AS bdtfx_cultivar, b.`cultivar_groupe` AS bdtfx_cultivar_groupe, concat('https://beta.tela-botanica.org/test/bdtfx-nn-', b.`num_nom_retenu`) as bdtfx_url, |
CASE WHEN b.rang > 290 THEN |
concat('["',substr(`genre`, 1, 3),substr(`epithete_sp`, 1, 3), '","', substr(`genre`, 1, 2),' ',substr(`epithete_sp`, 1, 1),' ', substr(`epithete_infra_sp`, 1, 1), '","', substr(`genre`, 1, 2),' ',substr(`epithete_sp`, 1, 2), ' ', substr(`epithete_infra_sp`, 1, 1),'","', substr(`genre`, 1, 2),' ',substr(`epithete_sp`, 1, 3),' ', substr(`epithete_infra_sp`, 1, 1), '","', substr(`genre`, 1, 3),' ',substr(`epithete_sp`, 1, 1),' ', substr(`epithete_infra_sp`, 1, 1),'","', substr(`genre`, 1, 3),' ',substr(`epithete_sp`, 1, 2),' ', substr(`epithete_infra_sp`, 1, 1), '","', substr(`genre`, 1, 3),' ',substr(`epithete_sp`, 1, 3),' ', substr(`epithete_infra_sp`, 1, 1), '","', substr(`genre`, 1, 4),' ',substr(`epithete_sp`, 1, 1),' ', substr(`epithete_infra_sp`, 1, 1), '","', substr(`genre`, 1, 4),' ',substr(`epithete_sp`, 1, 2),' ', substr(`epithete_infra_sp`, 1, 1), '","', substr(`genre`, 1, 4),' ',substr(`epithete_sp`, 1, 3),' ', substr(`epithete_infra_sp`, 1, 1),'","', |
substr(`genre`, 1, 2),' ',substr(`epithete_sp`, 1, 1),' ', substr(`epithete_infra_sp`, 1, 2), '","', substr(`genre`, 1, 2),' ',substr(`epithete_sp`, 1, 2), ' ', substr(`epithete_infra_sp`, 1, 2),'","', substr(`genre`, 1, 2),' ',substr(`epithete_sp`, 1, 3),' ', substr(`epithete_infra_sp`, 1, 2), '","', substr(`genre`, 1, 3),' ',substr(`epithete_sp`, 1, 1),' ', substr(`epithete_infra_sp`, 1, 2),'","', substr(`genre`, 1, 3),' ',substr(`epithete_sp`, 1, 2),' ', substr(`epithete_infra_sp`, 1, 2), '","', substr(`genre`, 1, 3),' ',substr(`epithete_sp`, 1, 3),' ', substr(`epithete_infra_sp`, 1, 2), '","', substr(`genre`, 1, 4),' ',substr(`epithete_sp`, 1, 1),' ', substr(`epithete_infra_sp`, 1, 2), '","', substr(`genre`, 1, 4),' ',substr(`epithete_sp`, 1, 2),' ', substr(`epithete_infra_sp`, 1, 2), '","', substr(`genre`, 1, 4),' ',substr(`epithete_sp`, 1, 3),' ', substr(`epithete_infra_sp`, 1, 2),'","', |
substr(`genre`, 1, 2),' ',substr(`epithete_sp`, 1, 1),' ', substr(`epithete_infra_sp`, 1, 3), '","', substr(`genre`, 1, 2),' ',substr(`epithete_sp`, 1, 2), ' ', substr(`epithete_infra_sp`, 1, 3),'","', substr(`genre`, 1, 2),' ',substr(`epithete_sp`, 1, 3),' ', substr(`epithete_infra_sp`, 1, 3), '","', substr(`genre`, 1, 3),' ',substr(`epithete_sp`, 1, 1),' ', substr(`epithete_infra_sp`, 1, 3),'","', substr(`genre`, 1, 3),' ',substr(`epithete_sp`, 1, 2),' ', substr(`epithete_infra_sp`, 1, 3), '","', substr(`genre`, 1, 3),' ',substr(`epithete_sp`, 1, 3),' ', substr(`epithete_infra_sp`, 1, 3), '","', substr(`genre`, 1, 4),' ',substr(`epithete_sp`, 1, 1),' ', substr(`epithete_infra_sp`, 1, 3), '","', substr(`genre`, 1, 4),' ',substr(`epithete_sp`, 1, 2),' ', substr(`epithete_infra_sp`, 1, 3), '","', substr(`genre`, 1, 4),' ',substr(`epithete_sp`, 1, 3),' ', substr(`epithete_infra_sp`, 1, 3),'"]') |
WHEN b.rang = 220 THEN |
concat('["',substr(`genre`, 1, 1), '","', substr(`genre`, 1, 2), '","', substr(`genre`, 1, 3), '","', substr(`genre`, 1, 4), '"]') |
WHEN b.rang < 220 THEN |
concat('["',substr(`nom_supra_generique`, 1, 1), '","', substr(`nom_supra_generique`, 1, 2), '","', substr(`nom_supra_generique`, 1, 3), '","', substr(`nom_supra_generique`, 1, 4), '"]') |
ELSE concat('["',substr(`genre`, 1, 3),substr(`epithete_sp`, 1, 3), '","', substr(`genre`, 1, 2),' ',substr(`epithete_sp`, 1, 1), '","', substr(`genre`, 1, 2),' ',substr(`epithete_sp`, 1, 2), '","', substr(`genre`, 1, 2),' ',substr(`epithete_sp`, 1, 3), '","', substr(`genre`, 1, 3),' ',substr(`epithete_sp`, 1, 1),'","', substr(`genre`, 1, 3),' ',substr(`epithete_sp`, 1, 2), '","', substr(`genre`, 1, 3),' ',substr(`epithete_sp`, 1, 3), '","', substr(`genre`, 1, 4),' ',substr(`epithete_sp`, 1, 1), '","', substr(`genre`, 1, 4),' ',substr(`epithete_sp`, 1, 2), '","', substr(`genre`, 1, 4),' ',substr(`epithete_sp`, 1, 3),'"]') |
END as bdtfx_shortcuts |
FROM `bdtfx` b WHERE b.num_nom_retenu not in (SELECT distinct num_nom_retenu FROM bdtfx WHERE num_nom != num_nom_retenu and b.num_nom_retenu != 0) AND (b.num_nom = b.num_nom_retenu OR b.num_nom_retenu = "0") |
/branches/v2.0-betulales/scripts/modules/algolia/Algolia.php |
---|
New file |
0,0 → 1,349 |
<?php |
/** |
* Indexation dans Algolia des référentiels |
* |
* Description : formate les données des référentiels choisis et envoie tout ça |
* dans Algolia |
* |
* Utilisation : php script.php algolia [-ref "ref1,ref2,..."] |
* -ref (optionnel): liste de codes de référentiels séparés par des virgules; |
* par défaut: "apd,bdtfx,bdtxa,isfan" |
* |
* Exemples: |
* php script.php algolia |
* php script.php algolia -ref "bdtfx,isfan" |
* |
* @note: ignorer le paramètre fasciste -a : on ne s'en sert pas |
* |
* @author Tela Botanica <equipe-dev@tela-botanica.org> |
* @licence GPL v3 & CeCILL v2 |
*/ |
restore_error_handler(); |
restore_exception_handler(); |
ini_set("display_errors","1"); |
error_reporting(E_ALL); |
// composer autoload |
require dirname(__FILE__) . '/../../../vendor/autoload.php'; |
class Algolia extends ScriptCommande { |
const SCRIPT_NOM = 'algolia'; |
public $parametres = array( |
'-ref' => array(false, false, 'Celui qui lit ça est un con') |
); |
/** connexion PDO à la BDD "referentiels" */ |
protected $bdd; |
/** client API Algolia */ |
protected $algolia; |
protected $indexAlgolia; |
public function executer() { |
echo "Indexation des référentiels dans Algolia" . PHP_EOL; |
// Bibliothèque Algolia PHP pour appeler l'API |
Config::charger(dirname(__FILE__) . '/algolia.ini'); |
$this->algolia = new \AlgoliaSearch\Client(Config::get('algolia_application_id'), Config::get('algolia_api_key')); |
$this->indexAlgolia = $this->algolia->initIndex(Config::get('algolia_index')); |
/*$settings = $this->indexAlgolia->getSettings(); |
var_dump(json_encode($settings)); |
exit;*/ |
/*$idsexistants = $this->indexAlgolia->search("", array( |
"attributesToRetrieve" => array( |
"objectID" |
) |
)); |
var_dump(count($idsexistants)); |
var_dump($idsexistants); |
exit;*/ |
// Réglages de l'index @TODO tenir à jour |
if ($this->confirmer("Charger les réglages par défaut (index_settings.json) dans la configuration de l'index Algolia ?")) { |
// Chargement des réglages par défaut |
$reglagesJson = file_get_contents(dirname(__FILE__) . '/index_settings.json'); |
$reglages = json_decode($reglagesJson, true); |
$this->indexAlgolia->setSettings($reglages); |
echo "Réglages chargés dans Algolia" . PHP_EOL; |
} |
// Connexion à la base |
$this->connecterPDO(); |
// Liste des référentiels à fusionner |
$refsTexte = Config::get('algolia_referentiels'); |
$refs = explode(",", $refsTexte); |
// Liste des référentiels à mettre à jour |
$refsMajTexte = $this->getParam("ref"); |
if ($refsMajTexte === false) { |
// si le paramètre est vide, on met tout à jour |
$refsMaj = $refs; |
} else { |
$refsMaj = explode(",", $refsMajTexte); |
} |
// Déniaisage 1 |
foreach ($refs as $k => $r) { |
$fichierRequete = dirname(__FILE__) . "/algolia_" . $r . ".sql"; |
if (! file_exists($fichierRequete)) { |
echo "- fichier [$fichierRequete] non trouvé, fusion de [$r] ignorée" . PHP_EOL; |
unset($refs[$k]); |
} |
} |
if (empty($refs)) { |
echo "Aucun référentiel à fusionner" . PHP_EOL; |
exit; |
} |
// Déniaisage 2 |
foreach ($refsMaj as $k => $r) { |
if (! in_array($r, $refs)) { |
echo "- le référentiel à mettre à jour [$r] n'est pas présent dans la liste à fusionner, il sera ignoré" . PHP_EOL; |
unset($refsMaj[$k]); |
} |
} |
if (empty($refsMaj)) { |
echo "Aucun référentiel à mettre à jour" . PHP_EOL; |
exit; |
} |
// Confirmation |
if (! $this->confirmer("Fusion des référentiels [" . implode(',', $refs) . "] et mise à jour de [" . implode(',', $refsMaj) . "]. Continuer ?")) { |
exit; |
} |
//var_dump($refs); |
$donneesBrutes = array(); |
// Exécution des requêtes pour chaque référentiel |
foreach ($refs as $ref) { |
$fichierRequete = dirname(__FILE__) . "/algolia_" . $ref . ".sql"; |
// Exécution de la requête |
$requete = file_get_contents($fichierRequete); |
$resultat = $this->requete($requete); |
/*while ($ligne = $resultat->fetch()) { |
var_dump($ligne); |
break; |
}*/ |
$donneesBrutes[$ref] = $resultat->fetchAll(); |
// Info utilisation mémoire |
$mem = memory_get_usage(true); |
$memMio = round($mem / (1024 * 1024)); |
echo "Mémoire utilisée : $memMio Mio" . PHP_EOL; |
} |
// Fusion ! |
$index = $this->fusionnerReferentiels($donneesBrutes); |
//$this->extrait($index, array('Acacia dealbata Link','Acacia Mill.','Fabaceae')); |
// Mise en forme |
$index = $this->mettreEnForme($index); |
//$this->extrait($index, 3); |
// Stats |
$taille = count($index); |
echo "Taille de l'index: [$taille] lignes !" . PHP_EOL; |
//file_put_contents("couscous.json", json_encode($index)); |
// Calcul des différences ? |
// Insertion ? |
$this->insererDansAlgolia($index); |
// Info utilisation mémoire totale |
$mem = memory_get_peak_usage(true); |
$memMio = round($mem / (1024 * 1024)); |
echo "Mémoire maximale utilisée : $memMio Mio" . PHP_EOL; |
} |
/** |
* Génère un index unique pour Algolia à partir des données de n référentiels |
*/ |
protected function fusionnerReferentiels(&$donneesRefs) { |
$index = array(); |
foreach ($donneesRefs as $ref => &$d) { |
$nbTaxons = count($d); |
echo "-- fusion du référentiel [$ref] : $nbTaxons taxons --" . PHP_EOL; |
$fusions = 0; |
foreach ($d as $taxon) { |
$nomSci = $taxon[$ref . '_nom_sci']; |
//$nn = $taxon[$ref . '_num_nom']; |
// Ajout du nom d'auteur pour éviter les collisions dans un même référentiel |
if (! empty ($taxon[$ref . '_auteur'])) { |
$nomSci .= ' ' . $taxon[$ref . '_auteur']; |
} |
// -- ÉLIMINATION DES NOMS SANS CORRESPONDANCE |
if (empty($taxon[$ref . '_num_nom_retenu'])) { |
//echo "XX élimination du nom sans correspondance : [$nomSci] (nn $nn)" . PHP_EOL; |
continue; |
} |
if (! isset($index[$nomSci])) { |
$index[$nomSci] = array( |
'objectID' => $nomSci, |
'referentiels' => array() |
); |
} else { |
//echo "> fusion sur [$nomSci] (nn $nn)" . PHP_EOL; |
$fusions++; |
} |
$index[$nomSci] = array_merge($index[$nomSci], $taxon); |
$index[$nomSci]['referentiels'][] = $ref; |
//break; |
} |
$taille = count($index); |
echo "- taille de l'index après ajout de [$ref]: [$taille] lignes ($fusions fusions)" . PHP_EOL; |
} |
return $index; |
} |
/** |
* Organise les données de chaque objet conformément à la structure de |
* l'index Algolia |
* |
* Voir commentaires sur cette page : |
* http://taiga.tela-botanica.net/project/mathias-site-web/task/75 |
* |
* L'objectID est le MD5 de la "clef" (nom scientifique avec auteur) |
*/ |
protected function mettreEnForme($index) { |
$nouvelIndex = array(); |
foreach ($index as $nomSci => $taxon) { |
$nouveauTaxon = array( |
'objectID' => md5($nomSci), |
'referentiels' => $taxon['referentiels'] |
); |
foreach ($taxon['referentiels'] as $ref) { |
// ingrédients |
$nn = $taxon[$ref . '_num_nom']; |
$ns = $taxon[$ref . '_nom_sci']; |
$nts = $taxon[$ref . '_num_tax_sup']; |
$rang = $taxon[$ref . '_rang']; |
$auteur = $taxon[$ref . '_auteur']; |
$annee = $taxon[$ref . '_annee']; |
$biblio = $taxon[$ref . '_biblio']; |
$nom_supra_generique = $taxon[$ref . '_nom_supra_generique']; |
$genre = $taxon[$ref . '_genre']; |
$epithete_sp = $taxon[$ref . '_epithete_sp']; |
$type_epithete = $taxon[$ref . '_type_epithete']; |
$epithete_infra_sp = $taxon[$ref . '_epithete_infra_sp']; |
$cultivar = $taxon[$ref . '_cultivar']; |
$cultivar_groupe = $taxon[$ref . '_cultivar_groupe']; |
$nomCommun = (isset($taxon[$ref . '_nom_francais']) ? $taxon[$ref . '_nom_francais'] : ''); |
$url = $taxon[$ref . '_url']; |
$synonymes = json_decode($taxon[$ref . '_synonymes'], true); |
$raccourcis = json_decode($taxon[$ref . '_shortcuts'], true); |
$raccourcis = ($raccourcis != null ? array_values(array_unique($raccourcis)) : null); // array_values réindexe pour obtenir une liste en JSON et non un objet |
// garniture |
$donneesRef = array( |
'nomenclatural_number' => intval($nn), |
'scientific_name' => $ns, |
'common_name' => $nomCommun, |
'synonyms' => $synonymes, |
'permalink' => $url, |
'parent_taxon_number' => intval($nts), |
'rank' => intval($rang), |
'author' => $auteur, |
'year' => intval($annee), |
'biblio' => $biblio, |
'supra_genus_name' => $nom_supra_generique, |
'genus' => $genre, |
'species_attribute' => $epithete_sp, |
'attribute_type' => $type_epithete, |
'infra_species_attribute' => $epithete_infra_sp, |
'cultivar' => $cultivar, |
'cultivar_groupe' => $cultivar_groupe |
); |
$nouveauTaxon[$ref] = $donneesRef; |
$nouveauTaxon['shortcuts'] = $raccourcis; |
} |
$nouvelIndex[] = $nouveauTaxon; |
} |
return $nouvelIndex; |
} |
/** |
* Appelle l'API Algolia pour indexer les données présentes dans $index, par |
* tranches. |
*/ |
protected function insererDansAlgolia(&$index) { |
$tailleTranche = 5000; |
echo "++++ Insertion dans Algolia (" . count($index) . " objets) !! ++++" . PHP_EOL; |
// insertion par tranches pour éviter un timeout sur l'API Algolia |
while (count($index) > 0) { |
echo "++ insertion d'une tranche de $tailleTranche... (" . count($index) . " restant)" . PHP_EOL; |
$tranche = array_splice($index, 0, $tailleTranche); |
//var_dump($tranche); |
$this->indexAlgolia->addObjects($tranche); |
} |
} |
// ---------------- utilitaires -------------------------------------------- |
protected function extrait($index, $clefsOuNombre) { |
// Debug |
echo PHP_EOL . "---- extrait des données --" . PHP_EOL; |
if (is_array($clefsOuNombre)) { |
foreach ($clefsOuNombre as $k) { |
var_dump($index[$k]); |
} |
} else { |
for ($i=0; $i < $clefsOuNombre; $i++) { |
var_dump($index[$i]); |
} |
} |
} |
protected function connecterPDO() { |
Config::charger(dirname(__FILE__) . '/../../configurations/bdd.ini'); |
try { |
$dsn = Config::get('bdd_type').':dbname='.Config::get('bdd_nom').';host='. |
Config::get('bdd_hote'); |
$this->bdd = new PDO($dsn, Config::get('bdd_utilisateur'), Config::get('bdd_mot_de_passe')); |
// Passe en UTF-8 la connexion à la BDD |
$this->bdd->exec("SET NAMES 'utf8'"); |
// Affiche les erreurs détectées par PDO (sinon mode silencieux => aucune erreur affiché) |
$this->bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); |
} catch (PDOException $e) { |
//print_r($e); |
echo 'La connexion à la base de données via PDO a échoué : ' . $e->getMessage() . PHP_EOL; |
exit; |
} |
} |
protected function requete($requete) { |
$infos = null; |
try { |
$infos = $this->bdd->query($requete, PDO::FETCH_ASSOC); |
/*if ($infos === false) { |
echo $requete; |
}*/ |
} catch (PDOException $e) { |
echo sprintf($e->getFile(), $e->getLine(), $e->getMessage(), $e->getCode(), $requete); |
} |
return $infos; |
} |
/** |
* Demande confirmation, et sort du script à moins qu'on tape ce qui est |
* indiqué (par défaut "o" pour "oui") |
*/ |
protected function confirmer($question='Continuer ?', $codeAcceptation='o', $messageAnnulation='annulation') { |
echo $question . ' ("' . $codeAcceptation . '" pour confirmer, autre chose pour annuler)' . PHP_EOL; |
$handle = fopen ("php://stdin","r"); |
$line = fgets($handle); |
if(strtolower(trim($line)) != strtolower($codeAcceptation)) { |
echo $messageAnnulation . PHP_EOL; |
return false; |
} |
fclose($handle); |
return true; |
} |
} |
?> |
/branches/v2.0-betulales/scripts/modules/algolia/index_settings.json |
---|
New file |
0,0 → 1,90 |
{ |
"minWordSizefor1Typo": 4, |
"minWordSizefor2Typos": 8, |
"hitsPerPage": 50, |
"maxValuesPerFacet": 100, |
"version": 2, |
"searchableAttributes": [ |
"unordered(shortcuts)", |
"bdtfx.scientific_name", |
"bdtfx.common_name", |
"unordered(bdtfx.nomenclatural_number)", |
"bdtfx.synonyms", |
"unordered(bdtfx.supra_genus_name)", |
"unordered(bdtfx.year)", |
"unordered(bdtfx.biblio)", |
"apd.scientific_name", |
"apd.common_name", |
"unordered(apd.nomenclatural_number)", |
"apd.synonyms", |
"unordered(apd.supra_genus_name)", |
"unordered(apd.year)", |
"unordered(apd.biblio)", |
"isfan.scientific_name", |
"isfan.common_name", |
"unordered(isfan.nomenclatural_number)", |
"isfan.synonyms", |
"unordered(isfan.supra_genus_name)", |
"unordered(isfan.year)", |
"unordered(isfan.biblio)", |
"bdtxa.scientific_name", |
"bdtxa.common_name", |
"unordered(bdtxa.nomenclatural_number)", |
"bdtxa.synonyms", |
"unordered(bdtxa.supra_genus_name)", |
"unordered(bdtxa.year)", |
"unordered(bdtxa.biblio)" |
], |
"numericAttributesToIndex": [ |
"bdtfx.year", |
"apd.year", |
"isfan.year", |
"bdtxa.year", |
"bdtfx.rank", |
"apd.rank", |
"isfan.rank", |
"bdtxa.rank" |
], |
"attributesToRetrieve": null, |
"allowTyposOnNumericTokens": false, |
"ignorePlurals": false, |
"advancedSyntax": false, |
"removeStopWords": false, |
"replaceSynonymsInHighlight": true, |
"distinct": false, |
"unretrievableAttributes": null, |
"optionalWords": null, |
"attributesForFaceting": null, |
"attributesToSnippet": null, |
"attributesToHighlight": null, |
"paginationLimitedTo": 1000, |
"attributeForDistinct": null, |
"exactOnSingleWordQuery": "attribute", |
"ranking": [ |
"typo", |
"geo", |
"words", |
"filters", |
"proximity", |
"attribute", |
"exact", |
"custom" |
], |
"customRanking": [ |
"asc(bdtfx.scientific_name)", |
"asc(apd.scientific_name)", |
"asc(isfan.scientific_name)", |
"asc(bdtxa.scientific_name)" |
], |
"separatorsToIndex": "", |
"removeWordsIfNoResults": "none", |
"queryType": "prefixLast", |
"highlightPreTag": "<em>", |
"highlightPostTag": "</em>", |
"snippetEllipsisText": "", |
"typoTolerance": "true", |
"alternativesAsExact": [ |
"ignorePlurals", |
"singleWordSynonym" |
] |
} |
/branches/v2.0-betulales/scripts/modules/algolia |
---|
New file |
Property changes: |
Added: svn:ignore |
+algolia.ini |
/branches/v2.0-betulales/. |
---|
Property changes: |
Modified: svn:mergeinfo |
Merged /trunk:r380-385 |
Modified: svn:ignore |
+zip |
+vendor |
framework.php |
+.buildpath |
+log_bdnff.txt |
+log.txt |
.project |
-log.txt |
-zip |
-log_bdnff.txt |
-.buildpath |
+nbproject |
.settings |