2016-07-12 13 views
0

Ich habe folgende Aufzeichnungen ElasticsearchElasticsearch regex Abfrage Schrägstrich enthalten

{ 
    "label": "/home and garden/home furnishings", 
    "score": "0.731174" 
}, 
{ 
    "label": "/travel/vacation rentals", 
    "score": "0.601932" 
}, 
{ 
    "label": "/travel/vacation rentals", 
    "score": "0.657443" 
}, 
{ 
    "label": "/home and garden/gardening and landscaping/yard and patio", 
    "score": "0.707792" 
} 

Jetzt will ich eine Abfrage machen alle Taxonomie Etiketten zu erhalten, die mit „/ Reise“ beginnen, und ich will die Daten nur bis zum dritten Vorwärts

Beispiel Slash, wenn wir

"label": "/home and garden/gardening and landscaping/yard and patio" 

nehmen dann möchte ich die Daten nur bis

/home and garden/gardening and landscaping/ 

Ich habe versucht, einige der Abfragen für sie für teilweise Übereinstimmung wie:

{ 
"_source":["taxonomy"], 
    "from" : 0, 
"size" : 100, 
"query": { 
    "regexp":{ 
    "taxonomy.label":{ 
     "value":"/travel.*", 
     "boost":1.2 
    } 
} 
} 

}

Aber es scheint nicht, die uns auf so bald schlitzt, wie ich geben schlitzt es geben stoppt jede Ergebnisse, ich möchte wissen, ob dies möglich ist oder nicht und wenn es dann ist, wie gehe ich mit dieser Abfrage fort?

Jede Hilfe wird geschätzt.

+0

In Ihrer Frage haben Sie erwähnt, mit "/ travel" zu beginnen. Wie kommt es dann, sollte es "Label" übereinstimmen: "/ Haus und Garten/Garten und Landschaftsbau/Hof und Terrasse" das? – Backtrack

Antwort

0

Sie haben zwei Probleme. Zuerst werden Dokumente abgefragt, die mit travel beginnen.
Dafür können Sie path_hierarchy von ElasticSearch ausprobieren. Sie können mehr lesen here.

Dies ermöglicht es Ihnen, Ihren Weg zu speichern ‚/travel/vacation rentals‘ in Form von

/travel
/travel/vacation rentals

nach, als Sie direkte Übereinstimmung Abfrage in diesem Bereich zu tun.

Für den zweiten Teil können Sie Skripts ausprobieren, aber seien Sie vorsichtig mit ihnen, da das Aktivieren von Inline-Skripten zu einem unethischen Zugriff führen kann, wenn sie der Außenwelt ausgesetzt sind.

Sie können sicher gehen, indem Sie Skripte in bestimmten scripts Ordner gespeichert verwenden. Sie können mehr über Skripts lesen und wie man es sicher macht here.