Domanda

Ho una tabella di MySQL:

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

Ho 2 domande su Solr DIH:

1) Il campo langauge_code indica quale lingua il campo text è. E a seconda della lingua, voglio indice text a diversi campi 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 gestire un caso d'uso come questo? Come faccio a configurarlo per farlo?

2) Il campo tags deve essere indicizzato in un campo multiValued Solr. più valori vengono memorizzati in una stringa, separati da una virgola. Ad esempio, se tags contiene la stringa di "blue, green, yellow" poi voglio indicizzare il 3 valori "blue", "green", "yellow" in un campo Solr multivalore.

Come faccio a farlo con DIH?

Grazie.

È stato utile?

Soluzione

Per prima le vostre esigenze dello schema per permettere con qualcosa di simile:

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

Poi, nel tuo DIH config qualcosa di simile:

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

Con la sceneggiatura in via di definizione proprio sotto l'origine dati:

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

Altri suggerimenti

Mi dispiace che non ho una risposta diretta sulla tua domanda DIH, anche se sarebbe interessante sapere.

Ho notato il codice della lingua 2 lettera e suggerire uno slot 5 lettera. Alcune lingue hanno differenze dialettali che sono non banale. Ad esempio, Cinese contro il cinese tradizionale. Per l'analisi morfologica, il filtro in grado di gestire SmartCN zh-cn, ma non zh-TW, ecc.

portoghese e spagnolo sono anche le lingue in cui abbiamo messo in guardia contro la miscelazione tutti i dialetti insieme, anche se le differenze sono meno drastica, ed entrambi sarebbero ancora ricercabile.

Naturalmente si può avere già conosciuto questo, e semplicemente non aggiungerlo alla domanda di mantenerlo semplice. E 'solo un argomento molto fresco nella mia mente.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top