Frage

Ich habe eine MySQL-Tabelle:

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

Ich habe 2 Fragen zu Solr DIH:

1) Die langauge_code Feld gibt an, welche Sprache das text Feld ist in. Und abhängig von der Sprache, ich möchte Index text auf verschiedene Solr Felder aus.

# 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 behandeln einen usecase so? Wie konfiguriere ich es, dies zu tun?

2) Das tags Feld muss in ein Solr multiValued Feld indiziert werden. Mehrere Werte werden in einem String gespeichert ist, durch ein Komma getrennt. Zum Beispiel, wenn tags die Zeichenfolge "blue, green, yellow" enthält dann möchte ich Index der 3 Werte "blue", "green", "yellow" in ein Solr mehrwertig Feld.

Wie kann ich das mit DIH?

Danke.

War es hilfreich?

Lösung

Zuerst Ihr Schema Bedürfnisse zu ermöglichen, es mit etwas wie folgt aus:

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

Dann in Ihrem DIH Config so etwas wie folgt aus:

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

Mit dem Skript knapp unterhalb der Datenquelle definiert ist:

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

Andere Tipps

Es tut mir leid ich nicht eine direkte Antwort über Ihre DIH Frage haben, obwohl es wäre interessant zu wissen.

habe ich Ihren 2 Buchstaben bestehenden Sprachcode feststellen und einen 5 Briefschlitz vorschlagen. Einige Sprachen haben Dialekt Unterschiede, die nicht trivial sind. Zum Beispiel, vereinfachtes Chinesisch vs. traditionelles Chinesisch. Für morphologische Analyse können die SmartCN Filter umgehen zh-cn, aber nicht zh-tw, etc.

Portugiesisch und Spanisch sind auch Sprachen, in denen wir alle Dialekten gegen Mischen gewarnt haben, obwohl die Unterschiede weniger drastisch sind, und beide würden noch durchsucht werden.

Natürlich kann man das schon gekannt haben, und einfach nicht fügen Sie es auf die Frage, es einfach zu halten. Es ist nur ein Thema sehr frisch im Kopf.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top