Pregunta

Tengo una tabla de MySQL:

CREATE TABLE documents (
    id INT NOT NULL AUTO_INCREMENT,
    language_code CHAR(2),
    tags CHAR(30),
    text TEXT,
    PRIMARY KEY (id)
);

Tengo 2 preguntas sobre Solr DIH:

1) El campo langauge_code indica qué idioma es el campo text. Y en función del idioma, quiero índice text a diferentes campos de Solr.

# pseudo code

if langauge_code == "en":
    index "text" to Solr field "text_en"
elif langauge_code == "fr":
    index "text" to Solr field "text_fr"
elif langauge_code == "zh":
    index "text" to Solr field "text_zh"
...

Can DIH manejar un caso de uso como esto? ¿Cómo se configura para hacerlo?

2) El campo tags necesita ser indexada en un campo multiValued Solr. Varios valores se almacenan en una cadena, separados por una coma. Por ejemplo, si tags contiene la cadena "blue, green, yellow" entonces quiero índice de los 3 valores "blue", "green", "yellow" en un campo Solr con varios valores.

¿Cómo puedo hacer eso con DIH?

Gracias.

¿Fue útil?

Solución

En primer lugar sus necesidades de esquema para permitir que algo como esto:

<dynamicField name="text_*" type="string" indexed="true" stored="true" />

A continuación, en su configuración DIH algo como esto:

<entity name="document" dataSource="ds1" transformer="script:ftextLang" query="SELECT * FROM documents" />

Con el guión se define justo por debajo de la fuente de datos:

<script><![CDATA[
  function ftextLang(row){
     var name = row.get('language_code');
     var value = row.get('text');
     row.put('text_'+name, value); return row;
  }
]]></script>

Otros consejos

Lo siento no tengo una respuesta directa acerca de su pregunta DIH, a pesar de que sería interesante conocer.

Me di cuenta el código de idioma de 2 letras y sugerir una ranura de 5 letras. Algunas lenguas tienen diferencias dialectales que no son triviales. Por ejemplo, chino simplificado vs chino tradicional. Para el análisis morfológico, el filtro SmartCN puede manejar zh-cn, pero no zh-tw, etc.

portugués y español son también los idiomas en los que hemos sido advertidos de la mezcla de todos los dialectos juntos, aunque las diferencias son menos drásticas, y ambos todavía serían de búsqueda.

Por supuesto que puede haber ya conocido esto, y simplemente no añadirlo a la cuestión de mantener la sencillez. Es sólo un tema muy fresco en mi mente.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top