- 1.6.5.8.11.2.1. Structure des indices
- 1.6.5.8.11.2.2. geomsearch.cfg -> Bloc [settings] - Paramètres généraux
- 1.6.5.8.11.2.3. Création d'index géographiques et topographiques
- 1.6.5.8.11.2.4. Modifications de la recherche proprement dite
- 1.6.5.8.11.2.5. Paramètres de mise en cache
- 1.6.5.8.11.2.6. Analyser le fichier journal - trouver les meilleurs réglages
- 1.6.5.8.11.2.7. Accès aux valeurs topo via VBS
La V9.08 entraîne quelques modifications concernant l'emplacement et les fichiers :
L'index géographique et l'index topo sont désormais enregistrés séparément.
Le
Le nouveau géo-index se trouve dans le sous-dossier geoindexv2
(à côté de l'"ancien »
geoindex
), l’index topographique dans le dossier
topoindex
.
Les fichiers suivants se trouvent dans le répertoire geoindexv2:
Ce fichier contient les empreintes digitales pour chaque algorithme.
Ce fichier contient des informations sur la pièce qui ne sont pertinentes que pour la création des empreintes digitales, c'est-à-dire que ces informations ne doivent pas être lues pour la recherche.
Ce fichier contient l'index linéaire pour les différents modèles de recherche.
geomsearch.ofm: Ce fichier contient un mapping des chemins d'accès au projet vers les ID internes du géo-index.
Dans un mode particulier, les mises à jour du Géo-Index ne sont pas intégrées directement dans le Géo-Index, mais sont enregistrées dans des fichiers spéciaux afin d'accélérer le processus. Vous trouverez plus d'informations à ce sujet sur Section 1.6.5.8.11.2.3, « Création d'index géographiques et topographiques ». Les fichiers suivants sont utilisés à cet effet :
geomsearch.ucidb: Contient des informations des modifications qui ne sont pas pertinentes lors de la recherche.
geomsearch.uop: contient toutes les informations nécessaires pour pouvoir intégrer les empreintes digitales des modifications dans le géo-index. Il se peut que le géo-index soit en cours de modification.
Dans ce cas, un autre fichier se trouve dans ce répertoire :
geomsearch.lock: Empêche l'accès au géo-index pendant l'écriture.
Les fichiers suivants se trouvent dans le répertoire topoindex:
Sous $CADENAS_SETUP/geomsearch.cfg, il est possible d'effectuer quelques réglages. Ceux-ci sont regroupés dans le bloc [settings].
Déterminez quel géo-index doit être utilisé pour la recherche. Valeurs possibles :
Déterminez quel topo-index doit être utilisé pour la recherche. Valeurs possibles :
Clé : convertindex et converttopoindex
Conversion d'anciens indices en nouveaux indices. Valeurs possibles :
Contrôle si l'ancien ou le nouvel index doit être créé. Valeurs possibles :
L'index linéaire doit-il être recréé lors de la conversion ? Valeurs possibles :
Il existe en principe 3 possibilités pour la création des index:
Mise à jour de l'index existant (travail sur copie). Dans ce cas, l'index existant peut aussi être un ancien géo-index, qui sera alors automatiquement converti.
Mise à jour de l'index existant (travail avec des fichiers de mise à jour spéciaux). Utile si l'on fait de petites modifications sur de grands catalogues.
La variante 3 est beaucoup plus rapide que la variante 2, surtout sur les grands catalogues.
La variante 3 a l'inconvénient de ralentir la recherche au fur et à mesure que ces mises à jour sont ajoutées. C'est pourquoi il est judicieux d'actualiser de temps en temps l'index en mode 2, car les mises à jour sont alors entièrement intégrées dans l'index.
Les éléments pivots de l'index linéaire ne sont pas redéfinis dans la variante 3. Cela peut également avoir un effet négatif sur les temps de recherche.
La création de l'index géographique et de l'index topographique se fait toujours en même temps.
En principe, comme pour la migration, les 64 bits permettent d'obtenir de meilleures performances.
Pendant la génération des index, les répertoires sont verrouillés par l'index géo et l'index topo. Les variantes 1 et 2 travaillent sur une copie temporaire. Ici, le répertoire n'est verrouillé au début que pour les accès en écriture, c'est-à-dire que l'index peut encore être lu. L'index ne doit être brièvement verrouillé en lecture que si les anciens fichiers sont supprimés et les temporaires renommés. La variante 3 ne travaille pas sur une copie. C'est pourquoi il faut verrouiller pendant toute la mise à jour.
À propos de la clé
ThreadCountForLinearIndexCreator
en blocsettings_32
ousettings_64
peut être défini combien de fils doivent être utilisés pour décrire le linéaire Index. Si vous définissez la valeur sur -1, alors le nombre de Graines. Chaque fil peut avoir besoin de quelques cent Mo de RAM, donc faites des valeurs trop élevées pour 32 bits n’a aucun sens.[settings_32] ThreadCountForLinearIndexCreator=2 [settings_64] ThreadCountForLinearIndexCreator=-1
Pour
Indice Géo et Topo, il y en a 3 chacun
différents modes d’exécution de la recherche, en fonction de ce que
dans le geomsearch.cfg
du bloc settings
(voir ci-dessus).
En outre, à partir de la V9.08, l'index linéaire est également utilisé pour la recherche d'esquisses afin de réduire le temps de recherche.
Tous les paramètres de mise en cache peuvent être définis différemment pour PARTdataManager 32 bits et 64 bits.
LinIndexCacheSize: taille du cache pour l'index linéaire en Ko
Choisir une valeur qui ne soit pas totalement épuisée.
Si cela n’est pas possible, le Mémoire primaire (
SampleLineCacheSize
) petite choisir.[CACHEV2_GEO_SEARCH_32] LinIndexCacheSize=100000
[CACHEV2_GEO_SEARCH_64] LinIndexCacheSize=300000
OffsetCacheSize: taille du cache pour l'index de décalage en Ko
Choisissez des valeurs qui ne sont pas entièrement utilisées.
Si cela n’est pas possible, le Mémoire primaire (
SampleLineCacheSize
) petite choisir.[CACHEV2_GEO_SEARCH_32] OffsetCacheSize=50000
[CACHEV2_GEO_SEARCH_64] OffsetCacheSize=150000
GeoIndexV2CacheSize: Nombre d'index géographiques qui peuvent être ouverts en même temps.
Définissez la valeur de manière à ce qu'elle corresponde au nombre maximal de catalogues.
[CACHEV2_GEO_SEARCH_32] GeoIndexV2CacheSize=1000
[CACHEV2_GEO_SEARCH_64] GeoIndexV2CacheSize=1000
SampleLineCacheSize: Cache pour les empreintes digitales en Ko
Le cache est pour tous les threads (correspond en général au nombre de cœurs de processeur réunis)
[CACHEV2_GEO_SEARCH_32] SampleLineCacheSize=100000
[CACHEV2_GEO_SEARCH_64] SampleLineCacheSize=500000
LogFileName: les informations du journal sont enregistrées ici si elles ne sont pas vides. Voir ci-dessous.
Placez vous-même la clé, si elle n'est pas disponible.
[CACHEV2_GEO_SEARCH_32] LogFileName=c:\log\cachev2_geo_search_32.log
[CACHEV2_GEO_SEARCH_64] LogFileName=c:\log\cachev2_geo_search_64.log
![]() | Important |
---|---|
Lors de la géolocalisation, il convient de définir les valeurs selon les règles suivantes : |
Ce paramètre peut être utilisé pour les environnements de serveur afin d'exclure des catalogues ou de ne charger que des catalogues spéciaux.
#:VALS_S #:HELP;default;Include catalog, if the expression matches. PreloaderIncludeRegexPos= #:HELP;default;Include catalog, if the expression doesn't match. PreloaderIncludeRegexNeg= #:VALS_S #:HELP;default;Exlucde catalog, if the expression matches. PreloaderExcludeRegexPos=.*copyright\.prj$|.*_qa$|.*_dev$ #:VALS_S #:HELP;default;Exclude catalog, if the expression doesn't match. PreloaderExcludeRegexNeg=
Donc comparez $CADENAS_USER/varsearch.cfg -> [VariableSearch:Path] :
Le
sous geomsearch.cfg
est utilisé pour mettre en cache le
geometrical, celui sous $CADENAS_USER/varsearch.cfg
[VariableSearch:Path]
est utilisé pour mettre en cache l’index pour la variable
et la recherche en texte intégral.
ObjectDataCacheSize: Cache pour les nœuds de données topo
Particulièrement important pour la migration.
[CACHE_TOPO_SEARCH_32] ObjectDataCacheSize=200000
[CACHE_TOPO_SEARCH_64] ObjectDataCacheSize=1000000
IndexCacheSize: Cache pour les indices sur les données topo
Particulièrement important pour la recherche topo.
[CACHE_TOPO_SEARCH_32] IndexCacheSize=200000
[CACHE_TOPO_SEARCH_64] IndexCacheSize=500000
LogFileName: Les informations du journal sont enregistrées ici si elles ne sont pas vides. Voir aussi Section 1.6.5.8.11.2.6, « Analyser le fichier journal - trouver les meilleurs réglages ».
Placez vous-même la clé, si elle n'est pas disponible.
[CACHE_TOPO_SEARCH_32] LogFileName=c:\log\cachev2_topo_search_32.log
[CACHE_TOPO_SEARCH_64] LogFileName=c:\log\cachev2_topo_search_64.log
À l’aide des fichiers journaux mentionnés ci-dessus (clé
LogFileName
), le
Paramètres de recherche pour les données existantes et le comportement de recherche
optimisé. Le fichier journal indique à quel point la
caches respectifs et la fréquence à laquelle l’élément
était en fait dans le cache (cache hit).
Search from Do 12. Dez 22:41:09 2013 Thread: 0xce8 Geometrical index cache: Capacity of the cache: 1000 In use: 18 (1.80%) Free: 982 (98.20%) Accesses to the cache: 6489 Cache hits: 6471 (99.72%) Cache misses: 18 (0.28%) Linear index cache: Capacity of the cache: 100000 In use: 4962 (4.96%) Free: 95038 (95.04%) Accesses to the cache: 1932 Cache hits: 1615 (83.59%) Cache misses: 317 (16.41%) Offset index cache: Capacity of the cache: 50000 In use: 1617 (3.23%) Free: 48383 (96.77%) Accesses to the cache: 7033 Cache hits: 6716 (95.49%) Cache misses: 317 (4.51%) Sample lines cache: Capacity of the cache: 100000 In use: 82785 (82.78%) Free: 17215 (17.22%) Accesses to the cache: 16840 Cache hits: 10985 (65.23%) Cache misses: 5855 (34.77%)
Quelques indications pour l'interprétation des données :
Il se peut que le fichier journal ne soit mis à jour qu'avant la prochaine recherche.
Afin d'effectuer des réglages judicieux à l'aide du fichier journal, il est important d'effectuer plusieurs recherches qui correspondent plus ou moins au comportement normal de l'utilisateur, par exemple lors de la sélection des modèles de recherche, de la recherche d'esquisses ou de la recherche 3D, mais aussi lors de la sélection des pièces de recherche.
Les informations sur les succès et les échecs en matière de cache, qui sont fournies après chaque recherche, sont cumulatives.
Les données ne sont toujours chargées dans le cache que lors du premier accès. Le premier accès aux données est donc toujours un échec de la mise en cache. Plus il y a de recherches effectuées, moins il devrait y avoir de cache-miss.
Il est possible d'accéder aux valeurs Topo de la manière suivante :
' main class to manage topology set topoManager = CreateObject("cnstools.topomanager") ' fetch root node of topology tree set catalogRoot = topoManager.findCatalogRoot("cat/norm/din") stdprint("Number of project in din: " & catalogRoot.childCount) ' fetch project node set prjNode = topoManager.findProjectNode("cat/norm/din", "anlagenbau/armaturen/din_11864_1_a_asmtab.prj") stdprint("Number of lines in anlagenbau/armaturen/din_11864_1_a_asmtab.prj: "
& prjNode.childCount) ' fetch line node set lineNode = topoManager.findLineNode("cat/norm/din", "anlagenbau/armaturen/
din_11864_1_a_asmtab.prj", 20) ' helper to recursively print all the attributes of a node sub printAttributes(node, indent) stdprint(indent & node.name) c = node.childCount for j = 0 to c - 1 printAttributes(node.child(j), indent & " ") next a = node.attributeCount for j = 0 to a - 1 set attr = node.attribute(j) value = attr.value valueAsString = "" set attrType = attr.type if attrType = "doubleVec" then n = value.count for k = 0 to n - 1 if k > 0 then valueAsString = valueAsString & ", " end if valueAsString = valueAsString & value.item(k) next else valueAsString = value end if stdprint(indent & " " & attr.name & ": " & valueAsString) next end sub ' print all attributes for a line stdprint("Recursive list of all attributes in line 20:") stdprint() printAttributes(lineNode, "") stdprint() ' print all attributes for a stl file stdprint("Recursive list of all attributes in stl:") stdprint() set stlNode = topoManager.createNodeFrom3DFile("D:/stl/1 stl/001952002.stl", "STLFILE") printAttributes(stlNode, "") ' print all attributes for a prt file stdprint() stdprint("Recursive list of all attributes in prt file:") stdprint() set prtNode = topoManager.createNodeFrom3DFile("D:/stl/ein paar proe-Dateien/
1202t4100_gen.prt.1", "NATWILDFIREPART 5 32 BIT") printAttributes(prtNode, "") ' print all attributes for a line (create fingerprints on the fly) stdprint() stdprint("Recursive list of all attributes in line 420:") stdprint() set lineNode2 = topoManager.createNodeFromProject("cat/norm/din", "anlagenbau/armaturen/
din_11864_1_a_asmtab.prj", 420) printAttributes(lineNode2, "") ' print all attributes for a project (create fingerprints on the fly) stdprint() stdprint("Recursive list of all attributes in project anlagenbau/armaturen/
din_11864_1_a_asmtab.prj:") stdprint() set prjNode2 = topoManager.createNodeFromProject("cat/norm/din", "anlagenbau/armaturen/
din_11864_1_a_asmtab.prj", -1) printAttributes(prjNode2, "")