La Red de Conocimientos Pedagógicos - Currículum vitae - ¿Qué tamaño tiene la configuración de solr jvm?

¿Qué tamaño tiene la configuración de solr jvm?

0×00 El principio es una mierda como siempre

Desde que empezaron a aparecer uno tras otro todo tipo de escándalos de quitarse los pantalones, he aprendido a comportarme y he cambiado las contraseñas en varios lugares a diferentes, incluidas las contraseñas de cuentas importantes. Lo cambié regularmente. Tenía miedo de ser ascendencia de la generación 18, así que incluso comencé a usar un nombre falso en línea "Xingcai". que se ve bastante bien, en realidad es una mala palabra en nuestra ciudad natal, que significa personas con retraso mental... -_-|||Bueno, es falso de todos modos, no te preocupes por estos detalles.

Este es solo un nombre. En cuanto al apellido, en la información de registro de cada cuenta, los apellidos de los cientos de familias están ordenados en orden descendente desde Zhao, Qian, Sun, Li, Zhou,. Wu, Zheng y Wang, Zhang Xingcai, Li Xingcai, Wang Xingcai... Entonces... No sé cuánto tiempo he estado "Xingcai" así. Finalmente, un día, recibí una llamada telefónica extraña: Hola, ¿Es este el Sr. Ma Xingcai?

Está bien, lo que se suponía que vendría finalmente llegó, así que lo busqué por nombre y descubrí que usé este nombre para un determinado sitio web, y luego busqué en varios. Efectivamente, le quitaron los pantalones a ese sitio web de mierda.

Me bajé los pantalones con decisión, y luego me salí de control y comencé a coleccionar pantalones hasta que un día descubrí que la colección era muy rica. Se estimaba aproximadamente que había miles de millones de pares. Los datos, pensé por un momento, no se pueden simplemente recopilar, también debería crear una base de datos de trabajo social para usarlos...

0×01 Introducción

Cómo construir una base de datos de trabajo social, una cantidad tan grande de datos, no es simplemente una cuestión de construir una base de datos con mysql y luego hacer una consulta PHP, seleccione * de sgk donde el nombre de usuario es 'xxxxx', y no se hace. Tampoco es que algunos jóvenes ingenuos quieran simplemente encontrar memoria 4g. Se puede usar una computadora AMD de doble núcleo de mala calidad. Si se utilizan las declaraciones anteriores y la configuración del sistema para consultar la base de datos de ingeniería social, probablemente tomará media hora. para comprobar un registro. Afortunadamente, este problema se resolvió hace mucho tiempo con algo llamado motor de búsqueda de texto completo. La mejor noticia es que la mayoría de los motores de búsqueda de texto completo son de código abierto y no cuestan dinero.

Actualmente, la mayoría de las bibliotecas de ingeniería social que se han creado en Internet son de arquitectura mysql coreseek php. Coreseek se basa en sphinx y es un excelente motor de búsqueda de texto completo. Es relativamente liviano y una vez que la cantidad de datos exceda el límite de mil millones, será algo inadecuado y el rendimiento distribuido de la construcción de un clúster no es ideal. Si desea considerar la creciente cantidad de datos en el futuro, aún tiene que hacerlo. para usar otras soluciones. Por esta razón, usé Solr.

Solr se basa en el famoso marco Lucene. Basado en Java, se pueden importar varias bases de datos y datos en varios formatos a través de la interfaz jdbc. Es muy adecuado para desarrollar plataformas de búsqueda de datos masivas a nivel empresarial y proporciona. una función completa de clúster de Solr Cloud y, lo que es más importante, la consulta de datos de Solr se basa completamente en http, que puede devolver json, xml, php, python, ruby, csv y otros formatos a través de parámetros de publicación simples.

El solr anterior era esencialmente un conjunto de servlets que debían colocarse en Tomcat para ejecutarse. A partir de solr5, ya viene con jetty. Está bien configurado y se puede usar de forma independiente y puede manejar una gran cantidad. número de solicitudes simultáneas, hablaremos de la arquitectura específica más adelante. Ahora instalemos y configuremos Solr primero.

Instalación y configuración de 0×02

Las siguientes son las plataformas de hardware y software que utilicé durante todo el proceso de construcción y prueba. Todo el contenido de este artículo se completó en esta plataforma:

Configuración de software: solr5.5, mysql5.7, jdk8, Tomcat8 Windows10/Ubuntu14.04 LTS

Configuración de hardware: i7 4770k, 16G DDR3, disco negro Western Digital 2T

2.1 base de datos mysql

No entraré en detalles sobre la instalación y configuración de la base de datos Mysql aquí. Solo mencionaré un punto para aplicaciones como bibliotecas de ingeniería social que tienen muchas más consultas. tareas que la inserción y actualización, es mejor utilizar el motor MyISAM.

Después de crear la base de datos, cree una nueva biblioteca llamada newsgk y luego cree una tabla llamada b41sgk con la siguiente estructura:

la clave primaria de id bigint crece automáticamente

nombre de usuario varchar nombre de usuario

correo electrónico buzón varchar

contraseña varchar contraseña

salt varchar salt o segunda contraseña en la contraseña

ip varchar IP , dirección, número de teléfono y otra información

El sitio de origen de la base de datos varchar del sitio

El siguiente paso es importar todos los pantalones recopilados a esta tabla. Se recomienda utilizar navicat. aquí, que puede Admite la importación de varios formatos. El proceso específico es bastante aburrido y requiere mucha paciencia. No diré tonterías aquí. Puedes hacerlo tú mismo. importados inicialmente es de alrededor de mil millones.

2.2 Construcción y configuración de Solr

Primera descarga de solr:

$ wget

Descomprimir:

$ tar zxvf solr-5.5.0.tgz

Instalar jdk8:

$ sudo add-apt-repository ppa: webupd8team/java

$ sudo apt- get update

$ sudo apt-get install oracle-java8-installer

$ sudo apt-get install oracle-java8-set-default

Porque es java Cross -platform, Solr en Windows y Linux son el mismo paquete comprimido. La instalación de jdk en Windows no se explicará aquí.

Ingrese al directorio bin de la carpeta solr descomprimida. solr.cmd y solr son scripts de inicio en Windows y Linux respectivamente:

Porque la biblioteca de ingeniería social es una gran cantidad de big data. Y de forma predeterminada, jvm solo usa 512 m de memoria, lo cual está lejos de ser suficiente, por lo que debemos modificarlo para abrir el archivo solr.in.sh y buscar esta línea:

SOLR_HEAP="512m"

Según su volumen de datos, cámbielo a uno superior. Lo cambié a 4G aquí y lo guardé después del cambio. Es ligeramente diferente en Windows. Debe modificar esta línea en el solr. Archivo .in.cmd:

set SOLR_JAVA_MEM=-Xms512m -Xmx512m

De manera similar, modifique ambos 512m a 4G.

Los comandos de inicio, reinicio y parada de Solr son:

$ ./solr start

$ ./solr restart –p 8983

$ ./solr stop –all

En Linux, también puede instalar solr como un servicio a través del script install_solr_service.sh, que se ejecutará automáticamente en segundo plano después del arranque.

La instalación de Solr está completa. Ahora necesitamos importar datos de mysql. Antes de importar, necesitamos crear un núcleo. Cada núcleo es una colección de consultas, datos e índices. , etc. Puede considerarlo como una base de datos independiente. Creamos un nuevo núcleo:

Cree una nueva carpeta en el subdirectorio solr-5.5.0/server/solr y asígnele el nombre solr_mysql. nombre, cree dos subdirectorios conf y data a continuación, y copie todos los archivos en solr-5.5.0/solr-5.5.0/example/example-DIH/solr/db/conf al directorio conf que creamos. La configuración implica principalmente tres archivos, solrconfig.xml, esquema.xml y db-data-config.xml.

Primero abra db-data-config.xml y modifíquelo con el siguiente contenido:

Este archivo es responsable de configurar la fuente de datos importada. Modifique el contenido de la fuente de datos de acuerdo. Según la configuración real de MySQL, el contenido de la entidad a continuación debe completarse estrictamente de acuerdo con la estructura de la tabla de la base de datos de ingeniería social en MySQL, y los nombres de las columnas deben ser exactamente los mismos que los de la base de datos.

Luego abra solrconfig.xml, primero busque este párrafo:

true

esquema administrado

Coméntelo todo y agregue Cambiar la línea anterior a esta:

lt;!--

true

esquema administrado

--gt;

p>

Esto se debe a que solr5 y versiones posteriores usan esquema administrado para administrar el esquema de forma predeterminada, y es necesario cambiarlo para que pueda modificarse manualmente.

Entonces también debemos desactivar la sugerencia, que proporciona mensajes de búsqueda inteligentes. No utilizamos dicha función en la biblioteca de ingeniería social. Lo importante es que la sugerencia ralentizará seriamente la velocidad de inicio de Solr. En el caso de miles de millones de datos, activar la sugerencia puede hacer que Solr comience a cargar el núcleo durante varias horas.

También en solrconfig.xml, busque este párrafo:

mySuggester

FuzzyLookupFactory

DocumentDictionaryFactory

cat

precio

cadena

verdadero

10

sugerir

Elimine todos estos y luego guarde el archivo solrconfig.xml.

A continuación, haga una copia del esquema administrado, cámbiele el nombre a esquema.xml (no elimine el archivo original), ábralo y busque la siguiente ubicación:

Conservar solo _versión_ y _ root_node, luego elimine todos los campos, DynamicField y copyField, y agregue las siguientes partes:

id

La clave única aquí es la original en el archivo de configuración y se usa para especificar el campo index. debe estar reservado.

Se crea un nuevo campo llamado palabra clave. Su propósito es la consulta conjunta, es decir, cuando es necesario usar varios campos para la consulta de palabras clave al mismo tiempo, se puede usar este nombre de campo para aumentar la eficiencia de la consulta. especifique cuáles copiar campo a palabra clave. Tenga en cuenta que para campos como palabra clave, el atributo multiValued posterior debe ser verdadero.

Los tres campos de nombre de usuario, correo electrónico y palabra clave se utilizan para recuperar palabras clave de consulta. Especificamos su tipo como text_ik, que es un tipo que creamos porque, aunque Solr tiene segmentación de palabras chinas incorporada, el efecto es. no es bueno No, necesitamos agregar el motor de segmentación de palabras chinas de IKAnalyzer para realizar consultas en chino. Descargue el paquete de código fuente de IKAnalyzer para solr5 y luego use Maven para compilarlo y obtener un archivo IKAnalyzer-5.0.jar, colóquelo en solr-5.5.0/server/solr-webapp/webapp/WEB-INF/lib. directorio y luego agregue el siguiente contenido a la sección fieldType de solrconfig.xml:

Después de guardar, la configuración principal está completa, pero para importar datos de MySQL, también necesitamos descargar mysql-connector-java- bin del sitio web de mysql El archivo de la biblioteca jar, junto con los dos archivos solr-dataimporthandler-5.5.0.jar y solr-dataimporthandler-extras-5.5.0.jar en el directorio solr-5.5.0/dist. cópielo en el directorio solr-5.5.0/server /solr-webapp/webapp/WEB-INF/lib y luego reinicie solr para iniciar la importación de datos.