#include <iostream>
#include <iomanip>
#include <list>
#include <vector>
#include <set>
#include <fstream>
#include <istream>
#include <sstream>
#include "Pos.hpp"
#include "NodoTrieS.hpp"
Ir al código fuente de este archivo.
Namespaces | |
namespace | Mt77 |
Funciones | |
NodoTrieS * | mezcla (NodoTrieS *a1, NodoTrieS *a2) |
void | leeTexto (const char *na, long ndoc, NodoTrieS &t, bool normalizaPal) |
bool | es_signo_punt (unsigned char c) |
Diseño: Se intenta por sugerencia de ... que en eficiencia para indices invertidos es mejor tablas de hashing que tries normales, excepto tries especiales.
Estrategia para búsquedas tras ver doc. lucene es mantener varios indices en disco con facilidad para mezclarlos en disco y cuyas búsquedas en disco sean muy rápidas.
Construir índices se facilita entonces porque se hace en memoria hasta que quepa, cuando no se agota memoria RAM se escribe índice en disco y se comienza uno nuevo y así sucesivamente hasta que todos los documentos son indexados. Entonces se mezclan todos los índices producidos.
Para disminuir problemas de bloqueos, los indices no se sobreescriben (excepto cuando esté terminado un procesamiento).
2 índices grandes por sitio: local, todo. El local es enviado a los demás nodos. El de todo se construye localmente después de traer de todos los nodos.
Tras revisar ... mejor mantener posicion(es) dentro del documento de cada ocurrencia para poder buscar varias palabras consecutivas.
Implementación: 4 fases imp: memoria, disco en formato extra-simple, disco en formato binario , disco en formato binario comprimido
Suponemos que las cadenas ya viene en un formato estándar, por ejemplo mayúsculas sin signos de puntuación.
Definición en el archivo NodoTrieS.cpp.
bool es_signo_punt | ( | unsigned char | c | ) |
La función estádnar ispunct considera que las tildes son signos de puntuación por eso no se usa.
Definición en la línea 512 del archivo NodoTrieS.cpp.
Referenciado por NodoTrieS::insertaConEtiqueta().
void leeTexto | ( | const char * | na, | |
long | ndoc, | |||
NodoTrieS & | t, | |||
bool | normalizaPal | |||
) |
Construye un trieS a partir de un texto plano
Definición en la línea 468 del archivo NodoTrieS.cpp.
Hace referencia a ASSERT, NodoTrieS::inserta(), MAXCAD, y normaliza().
Referenciado por indexa(), leeODT(), leePDF(), RamDiscoCasoPrueba::prueba_escribePlano(), RamDiscoCasoPrueba::prueba_leeTexto(), y NodoTrieSCasoPrueba::prueba_leeTexto().
Mezcla dos tries retornando un tercero con el resultado. memoria: a1 y a2 son destruidos, la memoria que debían liberar ahora es responsabilidad del nuevo árbol retornado. Debería llamarse así: r = mezcla(a1, a2); a1=NULL; a2=NULL;
Definición en la línea 310 del archivo NodoTrieS.cpp.
Hace referencia a ASSERT, NodoTrieS::cad, NodoTrieS::cpos, NodoTrieS::hermano_mayor, NodoTrieS::hijo_menor, NodoTrieS::mezcla, NodoTrieS::NodoTrieS(), y prefijo_comun_mas_largo().
Referenciado por main(), RamDiscoCasoPrueba::prueba_escribePlano(), y NodoTrieSCasoPrueba::prueba_mezcla().