2017-04-12 2 views
1

Ich brauche Dokumente in elasticsearch nicht durch die Standard-Scoring-Funktion verwendet (wie Tfidf usw.), sondern nur nach Wort Häufigkeit oder Häufigkeit (nicht IDF usw.). Gibt es eine Möglichkeit, es zu ändern? Kann ich das in Python machen?Ändern Scoring-Funktion in elasticsearch

+0

Gibt es über TF/IDF irgendwie nur für Scoring-Koordination Faktor verwenden (coord) kümmern sich nicht nur und andere ausschalten. Ich denke, ich brauche nur Koordinationsfaktor (Koord) für meine Art der Suche. tfidf bestraft die Begriffe, weil sie in allen Dokumenten vorkommen. –

+0

Welche ES-Version ist das? Und für welches Wort/welchen Ausdruck möchten Sie die Frequenz erhalten? –

Antwort

0

können Sie die constant_score verwenden, wenn Sie

{ 
    "query": { 
     "bool": { 
      "constant_score": { 
       "query": { 
        "match": { 
         "description": "any word" 
        } 
       } 
      } 
     } 
    } 
} 
+0

Ich möchte, dass diese Dokumente den Rang hoch haben, die am meisten in der Abfrage übereinstimmen. Wenn die Abfrage 3 gleiche Wörter hat, wie "Zinn-Zinn-Dose", dann sollten Dokumente mit 3 "Zinn" höher eingestuft werden als solche mit 2 oder 1 "Zinn" oder sogar 4 oder 5 oder mehr "Zinn". Und Sie können davon ausgehen, dass alle Dokumente in ES dieses Wort "Zinn" enthalten. –

+0

Es tut mir leid, die tf/idf wird das tun, aber Sie wollen einen anderen Algorithmus. – RoiHatam

+0

Gibt es eine Möglichkeit, den Koordinationsfaktor (coord) nur für das Scoring zu verwenden und andere abzuschalten. Ich denke, ich brauche nur Koordinationsfaktor (Koord) für meine Art der Suche. tfidf bestraft die Begriffe, weil sie in allen Dokumenten vorkommen. –

Verwandte Themen