Ich habe eine Abfrage (na ja, einen Teil davon - Rest ist unwichtig wie Paginierung):Elasticsearch - boost verschachtelt Abfrage mit einem höheren Wert
"query": {
"filtered": {
"query": {
"bool": {
"must": [
{
"term": {
"is_active": true
}
}
],
"should": [
{
"bool": {
"must": [
{
"nested": {
"path": "skills",
"query": {
"bool": {
"must": [
{
"bool": {
"must": [
{
"range": {
"skills.value": {
"gte": "2"
}
}
},
{
"term": {
"skills.skill.name": "php"
}
}
]
}
}
]
}
}
}
}
],
"boost": 2
}
}
]
}
}
}
}
Es ist für die Suche Profil, das eine Fähigkeit „PHP“ mit Wert 2 oder mehr. Benutzer kann nach mehreren Fähigkeiten suchen => Wertepaar. Es funktioniert gut, aber ich habe eine Frage:
Wie man einen kleinen Schub für angepasste Fähigkeiten, die höhere skills.value hat, nur um Menschen mit PHP-Wert 3 höher in Suchergebnissen als jemand mit PHP 2 sogar machen wenn beide korrekt übereinstimmen.
bekommen Ausgabe: : "TransportError: TransportError (500, u'search_phase_execution_exception ', u'org.elasticsearch.index.fielddata.plain.PagedBytesIndexFieldData kann nicht in org.elasticsearch.index.fielddata.IndexNumericFieldData') umgesetzt werden" –