2011-08-24 8 views
38

En apache Solr, ¿por qué siempre necesitamos preferir el campo de cadena sobre el campo de texto si ambos resuelven el problema?campo de cadena Apache Solr o campo de texto?

¿Cómo afecta la cadena o el texto a los parámetros como el tamaño del índice, índice de lectura, creación del índice?

Respuesta

83

Los campos definidos por defecto en el esquema de solr son muy diferentes.

String almacena una palabra/frase como una cadena exacta sin realizar tokenización etc. Comúnmente útil para almacenar coincidencias exactas, por ejemplo, para facetar.

Text normalmente realiza tokenización y procesamiento secundario (como carcasa inferior, etc.). Útil para todos los escenarios cuando queremos emparejar parte de una oración.

Si la muestra siguiente, "This is a sample sentence", está indexada a ambos campos hay que buscar exactamente el texto This is a sample sentence conseguir un golpe desde el campo string, si bien puede ser suficiente para buscar sample (o incluso samples con stemmning habilitado) a obtener un golpe del campo text.

+0

¿También puede comentar sobre el tamaño del índice, índice de lectura, creación del índice? – Rahul

+2

Obtendrá un tamaño de índice más grande al realizar tokens, la cantidad dependerá de su cadena de procesamiento. La creación del índice también será un poco más lenta ya que hay más trabajo. La lectura/creación de índices será excelente de cualquier manera, así que no se preocupe a menos que se aproxime a millones de documentos. –

+1

Estoy leyendo millones de documentos ... espero que no sea un problema ... así que voy por el campo de cadena, ya que parece eficiente en todos los casos Y no necesito tokenizers/búsqueda de texto completo – Rahul

Cuestiones relacionadas