2016-08-09 28 views
0

Ich möchte die Vorschlagsfunktion der MarkLogic-Datenbank in Verbindung mit der Java-Client-API verwenden.MarkLogic - So wechseln Sie die Sprache von Suggest

Das Problem damit ist, einen Vorschlag Anruf Ich brauche ein Feld oder etwas, das als Vorschlag Quelle dient. Der nächste Schritt besteht darin, Abfrageoptionen zu erstellen, die auf diese Vorschlagsquelle verweisen. Der letzte Schritt ist anzurufen:

SuggestionDefinition def = marklogicClient.newQueryManager().newSuggestionDefinition(); 
def.setLimit(10); 
def.setOptionsName("my-query-options"); 
def.setStringCriteria("Test"); 
//setup lang? 

Die Frage ist: Wie Sprache wechseln? Wenn mein Frontend zwischen Deutsch und Englisch umgeschaltet werden kann, muss ich die Such-/Vorschlagssprache wechseln. Um das zu tun, muss ich die Sortierung wechseln, aber wie?

Die Abfrageoptionen statisch sind nach dem Upload, so etwas wie enthalten: für jede Hilfe

<default-suggestion-source> 
    <word collation="http://marklogic.com/collation/de"> 
     <field name="my-suggest" /> 
    </word> 
</default-suggestion-source> 

Vielen Dank im fortgeschrittenen!

Mit freundlichen Grüßen,

Zipunrar

Antwort

1

Die Lösung kommt durch zwei mögliche (und praktisch) Ideen:

Entweder schaffen mehr als eine Abfrage-Optionsdatei pro Sprache wie vorgeschlagen (und zusätzlichen Indizes pro Sprache) oder einfach nur um das Problem zu ignorieren!

Wenn das Feld hinter dem Vorschlag (die Quelle) auf Elemente zeigt, die mit verschiedenen xml: lang-Attributen versehen sind, dann wird ein Vorschlag mit "books" nur englische Vorschläge und einen Aufruf mit den deutschen "Bücher" zurückgeben gibt nur deutsche Vorschläge zurück.

Die einzige Ausnahme ist, wenn in einem englisch getaggten Element deutscher Text vorhanden ist. Dies könnte zu Fehlalarmen führen.

Zusätzlicher Gedanke: Suche nach Vorschlägen wie "Bücher" und Einstellung der Suchsprache auf Deutsch wird nichts zurückgeben.

Fazit: Das Suchen in einer bestimmten Sprache ist ein komplexes Thema. Es hängt wirklich davon ab, wie der Benutzer suchen möchte und wie die Anwendung funktioniert.

P.S: Ich habe die zweite Lösung verwendet, um das Problem für jetzt zu ignorieren.

1

Vielleicht Sie sind für den Einsatz von dynamischen Abfragemöglichkeiten suchen, wie in der Java-API-Dokumentation definiert:

https://docs.marklogic.com/guide/java/searches#id_76144

Darüber hinaus können Sie auch registrieren mehr als eine Abfrageoptionsdatei und verwenden Sie eine für jede Sprache.