examples - solr localhost
Índice de Solr vs almacenado (2)
El punto principal de tener ambos establecidos como falsos es saltarse explícitamente ese campo en particular.
Por ejemplo, si tiene un mapeo dynamicField de almacenamiento / indexación y quiere ignorar un nombre particular que de otro modo estaría bajo el patrón de dynamicField.
Alternativamente, puede utilizar dynamicField para ignorar un conjunto completo de campos con el mismo prefijo / sufijo que proviene de un tercero. Por ejemplo, Tika te enviará un montón de campos de metadatos que quizás quieras ignorar. Vea esto definido en el ejemplo de Solr schema.xml y utilizado en solrconfig.xml
En las versiones posteriores de Solr, también podría usar IgnoreFieldUpdateProcessorFactory (consulte la lista completa para obtener más información), que eliminará esos campos incluso antes en el proceso de indexación.
Estoy un poco confundido sobre cuál es el comportamiento del índice y los atributos almacenados de los campos de Solr.
Por ejemplo, si tengo lo siguiente en Schema.xml
<field name="test1" type="text" indexed="false"
stored="false" required="false" />
¿No se almacenará la prueba de campo1 en el documento de Solr incluso si creo un documento con ese campo y establezco un valor para ese campo y confirmo el documento a Solr? Como tengo el atributo stored=false
, ¿significa que el valor del campo se pierde en Solr y no persiste?
Gracias por la aclaración de antemano!
Eso es correcto. Por lo general, deseará que su campo se indexe o se almacene, o ambos. Si configura ambos en falso, ese campo no estará disponible en sus documentos Solr (ya sea para buscar o mostrar). Consulte la respuesta de Alexandre para los casos especiales en los que deseará establecer ambos en falso.
Como se indica aquí : indexed=true
hace que un campo sea buscable (y ordenable y facetable). Por ejemplo, si tiene un campo llamado test1
con indexed=true
, entonces puede buscarlo como q=test1:foo
, donde foo
es el valor que está buscando. Si indexed=false
para el campo test1
, esa consulta no arrojará resultados, incluso si tiene un documento en Solr con el valor de test1
como foo
.
stored=true
significa que puedes recuperar el campo cuando buscas. Si desea recuperar explícitamente el valor de un campo en su consulta, usará el texto en su consulta como fl=test1
(el valor predeterminado es fl=*
significa que recupera todos los campos almacenados). Solo si está stored=true
para test1
, se devolverá el valor. De lo contrario, no será devuelto.