2017-09-26 1 views
0

Ich weiß, dass es ähnliche Fragen über SOLR gibt, einige geben Einblicke, aber keine Lösung für genau was ich versuche zu tun.SOLR Indizierung SQL-Daten pro Sprache/Multi-Sprache

Ich möchte einen Kern mit mehrsprachigen Daten erstellen. Zum Beispiel ist es möglich, Feld wie description_fr, description_en zu haben. Ich möchte eine Beschreibung senden, wenn die Anfrage die Daten in Französisch und senden Sie nicht die Beschreibung.

Einige meiner Fragen:

  1. Wie definiere ich die Daten indiziert werden
  2. Wie erkläre ich die Anwendung die Suche gegen die Englisch oder Französisch Version der Felder anfordern?

Vielen Dank

+0

Wie werden Sie die Indizierung Daten - Was haben Sie versucht? Haben Sie [Sprachen während der Indexierung erkennen] (https://lucene.apache.org/solr/guide/6_6/detection-languages-during-indexing.html) angeschaut? – MatsLindh

+0

Ja, ich indexiere meine Daten mit DIH. Pro Zeile habe ich Daten mit den beiden Sprachen. Zum Beispiel habe ich eine Zeile mit den folgenden Spalten - ID, NAME, DESCRIPTION_FR, DESCRIPTION_EN. Ich möchte alle Spalten an den Benutzer abhängig von seiner Sprache senden - ID, NAME, DESCRIPTION_EN, wenn die Sprache EN ist und nicht BESCHREIBUNG_EN in diesem Fall senden. Ich habe die Erkennungssprachen gesehen, aber ich verstehe nicht genau, wie ich sie verwenden soll, und ob das das ist, was ich tun soll. Ich muss es versuchen – Vicking

+0

Jetzt auf der Suche nach der LangDetectLanguageIdentifierUpdateProcessorFactory Ich bin mir nicht sicher, ob ich es verwenden kann, weil langid.langField ein Feld für die Erkennung und meine Zeile die beiden Sprachen erfordert. Weißt du, ob ich es trotzdem benutzen kann? – Vicking

Antwort

0

ich spätestens Berlin Buzzwords [1]

Dies könnte für Sie interessant für die Zukunft einen Vortrag von einem Freund von mir empfehlen würde.

Bei Ihrer aktuellen Frage würde ich fortfahren, die Sprache der Abfrage zu identifizieren (was eine schwierige Aufgabe ist, da die Abfrage normalerweise aus wenigen Begriffen besteht). Dann würde ich je nach Sprache an Solr eine Anfrage senden, nur 1 gespeichertes Feld für den Inhalt zurückzugeben.

z.B.

Im Index Ich habe:

description_it, description_en

q = "prodotto Scalare" Sprache identifiziert: es

Anfrage: http://localhost:8983/solr/select?q=prodotto scalare & fl = description_it

Sie haben soeben Brauchen Sie eine Bibliothek, um die Sprache [2] und eine Zuordnung zwischen der Sprache ISO-Code und Ihre Solr-Felder zu erkennen. Sie können dies zur API Zeit oder direkt in Solr als Plugin erstellen.

[1] https://berlinbuzzwords.de/sites/berlinbuzzwords.de/files/media/documents/embracing_diversity_searching_over_multiple_languages.pdf

[2] Einige beliebte Beispiele: (durch DIH) Tika - - https://www.programcreek.com/java-api-examples/index.php?api=org.apache.tika.language.LanguageIdentifier Google https://github.com/shuyo/language-detection

+0

Danke, die Präsentation ist interessant. Eigentlich muss ich für meine Daten die Spalte, die der Sprache entspricht, zurückgeben, um die aufrufende API so zu beschränken, dass nicht angegeben wird, welche Spalten zurückgegeben werden sollen. Die API sendet eine Suche nach einem für alle Sprachen gemeinsamen Wort und erhält alle Daten, die diesen Schlüssel betreffen, aber die anderen Felder sind sprachspezifisch. – Vicking

Verwandte Themen