start - Solr: ¿Recuperar nombres de campo de un índice de solr?
solr vs elasticsearch (3)
Esta consulta devolverá una lista separada por comas de todos los campos que están en uso, incluidos los dinámicos.
select?q=*:*&wt=csv&rows=0&facet
Para responder a la pregunta original, esta es la forma de obtener una lista de todos los campos que comienzan con categoría_
select?q=*:*&wt=csv&rows=0&facet&fl=category_*
La presencia del parámetro facet
es necesaria para que esta consulta funcione en las versiones más recientes de Solr. En versiones anteriores, funcionará sin él.
En versiones anteriores, un comodín en el parámetro fl
no funcionará.
¿Cómo puedo consultar una instancia de solr para todos los nombres de campo (o prefijados)?
Quiero usar campos dinámicos como
category_0_s
category_1_s
...
Pero no sé cuántos pueden existir. Así que quiero recuperar todos los campos (preferiblemente con el prefijo "categoría_").
¿Algunas ideas? Gracias
Si necesita hacer esto desde su aplicación Java, puede usar Solrj y LukeRequestRequestHandler .
Tu código se vería así.
LukeRequest lukeRequest = new LukeRequest();
lukeRequest.setNumTerms(0);
LukeResponse lukeResponse = lukeRequest.process(server);
Map<String, FieldInfo> fieldInfoMap = lukeResponse.getFieldInfo();
for (Entry<String, FieldInfo> entry : fieldInfoMap.entrySet()) {
String fieldName = entry.getKey();
FieldInfo fieldInfo = entry.getValue();
// process fieldInfo
}
Use el controlador luke:
http://solr:8983/solr/admin/luke?numTerms=0
Use una xpath para obtener todos los campos que tengan la etiqueta dynamicBase que coincida con la definición de campos dinámicos que está buscando.