2017-09-14 3 views
0

Ich habe die Möglichkeiten von phrase, tokenFuzzy, fuzzy Suchoptionen in DSE Graph Documentation vorgestellt. Aber diese würden nicht ausreichen, um nach dem Fall zu suchen, sagen wir Anish und Aneesh, die beide unterschiedlich geschrieben, aber mehr oder weniger ähnlich ausgesprochen werden.Wie phonetische Suche in DSE Graph qlemlin query?

Gibt es eine Möglichkeit, die zugrunde liegenden Solar phonetic search-Funktionen in Gremlin-Abfragen zu verwenden?

Ähnliche Wortpaare sind Muller und Mueller!

Antwort

1

Aufgrund der Integration mit DSE Graph und DSE Search gibt es keine spezielle Gremlin-Syntax, um dies zu erreichen. Um dies in DSE Graph zu erreichen, würden Sie den SOLR Core für Vertex Label ändern, um den gewünschten Filter zur Analysekette hinzuzufügen. So etwas wie die folgenden verwendet werden könnten:

ALTER SEARCH INDEX SCHEMA ON graph_name.vertex_label_p 
ADD types.fieldType [ @name='phonetic' , @class='org.apache.solr.schema.TextField' ] 
    WITH 
    $${ 
     "analyzer": [ 
      { 
      "filter": [ 
       { "class": "solr.LowerCaseFilterFactory" }, 
       { 
       "class": "solr.BeiderMorseFilterFactory", 
       "nameType": "GENERIC", 
       "ruleType": "APPROX", 
       "concat": "true", 
       "languageSet": "auto" 
       } 
      ], 
      "tokenizer": { "class": "solr.StandardTokenizerFactory" } 
      } 
     ] 
     }$$; 

... und dann diese Änderungen aktiv zu machen ...

RELOAD SEARCH INDEX ON graph_name.vertex_label_p; 

Wir hatten andere Benutzer verwenden BMPM mit DSE suchen, aber ich bin nicht bewusst, dass irgendjemand es bisher mit Graph verwendet hat.

Wenn dem Analysator eine SOLR-Erweiterung hinzugefügt wird, kann es zu einer gewissen Erhöhung der Hardwareauslastung, insbesondere der CPU, kommen.

+0

Vielen Dank @jlacefie für die Antwort. Angesichts meiner Naivität in Solr scheint das nicht gerade klar zu sein. Ich werde es in den kommenden Wochen versuchen, wenn ich mich erst einmal an die Interna gewöhnt habe. Eine kurze Frage: Wird der Index automatisch aufgenommen? Oder sollte ich das Solr separat abfragen, bevor ich meine Gremlin-Abfrage abfange? – Phani

+0

Der Index sollte verwendet werden, wenn Sie die has-Anweisung für die Eigenschaft verwenden. Es sollte nicht notwendig sein, eine SOLR-Abfrage direkt auszuführen. – jlacefie

+0

Ich habe die ersten beiden Zeilen geändert in 'ALTER SUCHEN INDEX SCHEMA ON MyGraph.Person_p_search HINZUFÜGEN types.fieldType [@ name = 'rufname', @ class = 'org.apache.solgr.schema.TextField']' aber es kompiliert nicht. Ich konnte nicht herausfinden, in welchem ​​Schlüsselbereich dieser CQL-Befehl ausgeführt wird! Ich habe alle Schlüsselbereiche in MyGraph Notebook im DSE Studio ausprobiert. Aber kein Glück. Ich habe meinen Suchindex mit 'schema.vertexLabel ('Person') erstellt. Index ('search'). Search(). By ('rufenderName'). AsText(). Add()' – Phani