Esta pregunta es una continuación de this question sobre los tiempos de espera de lectura aislados e infrecuentes en una instalación de solr.¿Qué hace una buena consulta de auto calentamiento en Solr y cómo funcionan?
Como un posible problema de la falta/de malas consultas autowarming para nuevos investigadores se encontraron.
Ahora estoy confundido acerca de lo bien que las consultas deben autowarming "parecerse".
He leído, pero no podía encontrar ninguna buena documentación sobre este.
¿Deberían golpear una gran cantidad de documentos en el índice? ¿O deberían tener coincidencias en todos los campos distintos que existen en el índice?
no podrías simplemente *:*
ser el mejor consulta autowarming o por qué no?
El ejemplo Solr config tiene theese consultas de muestra en ella:
<lst><str name="q">solr</str> <str name="start">0</str> <str name="rows">10</str></lst>
<lst><str name="q">rocks</str> <str name="start">0</str> <str name="rows">10</str></lst>
les cambió a:
<lst><str name="q">george</str> <str name="start">0</str> <str name="rows">10</str></lst>
¿Por qué? Porque el índice tiene entidades de cine con campos para títulos y actores. Esos son los más buscados. Y George aparece en títulos y actores.
Realmente no sé si esto tiene sentido. Entonces mi pregunta es:
- ¿Cuáles serían las buenas consultas de autocalentamiento para mi índice y por qué?
- ¿Qué hace una buena consulta de auto calentamiento?
Este es un documento de ejemplo del índice. El índice tiene alrededor de 70.000 documentos y todos ellos se parece a esto (sólo valores diferentes, por supuesto): ejemplo el documento:
<doc>
<arr name="actor"><str>Tommy Lee Jones</str><str>Will Smith</str><str>Rip Torn</str>
<str>Lara Flynn Boyle</str><str>Johnny Knoxville</str><str>Rosario Dawson</str><str>Tony Shalhoub</str>
<str>Patrick Warburton</str><str>Jack Kehler</str><str>David Cross</str><str>Colombe Jacobsen-Derstine</str>
<str>Peter Spellos</str><str>Michael Rivkin</str><str>Michael Bailey Smith</str><str>Lenny Venito</str>
<str>Howard Spiegel</str><str>Alpheus Merchant</str><str>Jay Johnston</str><str>Joel McKinnon Miller</str>
<str>Derek Cecil</str></arr>
<arr name="affiliate"><str>amazon</str></arr>
<arr name="aka_title"><str>Men in Black II</str><str>MIB 2</str><str>MIIB</str>
<str>Men in Black 2</str><str>Men in black II (Hombres de negro II)</str><str>Hombres de negro II</str><str>Hommes en noir II</str></arr>
<bool name="blockbuster">false</bool>
<arr name="country"><str>US</str></arr>
<str name="description">Agent J (Will Smith) muss die Erde wieder vor einigem Abschaum bewahren, denn in Gestalt des verführerischen Dessous-Models Serleena (Lara Flynn Boyle) will ein Alien den Planeten unterjochen. Dabei benötigt J die Hilfe seines alten Partners Agent K (Tommy Lee Jones). Der wurde aber bei seiner "Entlassung" geblitzdingst, und so muß J seine Erinnerung erst mal etwas auffrischen bevor es auf die Jagd gehen kann.</str>
<arr name="director"><str>Barry Sonnenfeld</str></arr>
<int name="film_id">120912</int>
<arr name="genre"><str>Action</str><str>Komödie</str><str>Science Fiction</str></arr>
<str name="id">120912</str>
<str name="image_url">/media/search/filmcovers/105x/kf/false/F6Q1XW.jpg</str>
<int name="imdb_id">120912</int>
<date name="last_modified">2011-03-01T18:51:35.903Z</date>
<str name="locale_title">Men in Black II</str>
<int name="malus">3238</int>
<int name="parent_id">0</int>
<arr name="product_dvd"><str>amazon</str></arr>
<arr name="product_type"><str>dvd</str></arr>
<int name="rating">49</int>
<str name="sort_title">meninblack</str>
<int name="type">1</int>
<str name="url">/film/Men-in-Black-II-Barry-Sonnenfeld-Tommy-Lee-Jones-F6Q1XW/</str>
<int name="year">2002</int>
</doc>
mayoría de las consultas son consultas correspondencia exacta en los campos actor con algunos filtros en su lugar.
Ejemplo:
INFORMACIÓN: [] ruta webapp =/Solr =/Seleccionar/ params = {faceta = true & tipo = puntuación + ASC, + malus + ASC, + años descripción & hl .simple.pre = starthl & hl = true versión & = 2,2 & fl = *, partitura & facet.query = año: [1900 + A + 1950] & facet.query = año: [1951 + A + 1980] & facet.query = año: [1981 + A + 1990] & facet.query = año: [1991 + A + 2000] & = facet.query años: [2001 + A + 2011] & bf = div (sub (10000, malus), 100)^10 = hl.simple.post & endhl & facet.field = género & facet.field = país & facet.field = blockbuster & facet.field = afiliado & facet.field = tipo_producto & qs = 5 & qt = dismax & hl.fragsize = 200 & mm = 2 & facet.mincount = 1 & qf = actor de^0.1 & f.blockbuster.facet.mincount = 0 & f.genre.facet.limit = 20 & hl.fl = actor de & wt = json & f.affiliate.facet.mincount = 1 & f.country.facet.limit = 20 & filas = 10 & pf = actor de^5 & start = 0 & q = "Josi + Kleinpeter" & ps = 3} accesos = 1 status = 0 QTime = 4
El OP podría estar usando un campo y/o caché de filtro también, lo que también sería bueno para calentarse. Si tiene una faceta enum, por ejemplo, guardará en caché un mapa de bits de documentos que coincidan con ese filtro, por lo que querrá calentarlos todos. En este caso, la forma en que consulta es importante, no solo los resultados. – Xodarap
@ Xodarap: creo que los cachés de filtro se pueden calentar implícitamente. Se ejecutan como un subconjunto de las consultas ejecutadas más recientemente antes de volver a cargar el índice. Esto está en un cambio caliente sin embargo. En un arranque en frío, sí, las consultas son importantes. – rfeak