Wie, um genaue Werte und match-queries auf demselben Feld in elasticsearch?

Also ich habe ein Feld speichert einen Wert im format: number/year so etwas wie 23/2014, 24/2014, 12/2015, etc...

also, wenn dieses Feld zugeordnet ist, als not_analyzed man, ich kann den genauen Wert suchen mit Begriff filtern, wenn ich nach einem Wert suchen, in exakt der Struktur(sowas in der Art 1/2014, 15/2014,...) funktioniert es, wie die sql equals(=).

{
  "query": {
    "filtered": {
      "filter": {
        "term": {
          "processNumber": "11/2014"
        }
      }
    }
  }
}

So, Suche mit etwas anderes wie 11/, oder /2014 zurückgeben würde nicht trifft. Das ist in Ordnung.

Aber wenn ich definieren Sie das Feld als not_analyzed, kann ich nicht machen sql LIKE Art sucht mit der match_phrase Abfrage.

{
  "query": {
    "match_phrase": {
      "processNumber": "11/201"
    }
  }
}

In diesem Fall die Suche für 11,11/,/2014 oder 2014 sollte die Rückkehr trifft, aber Sie nicht.
Die Sache ist, diese Abfrage funktioniert, wenn das Feld nicht zugeordnet, wie ein not_analyzed ein. So es scheint, muss ich entweder die eine oder die andere, das problem ist, dass der Bereich sollte Unterstützung beide Optionen für die verschiedenen Abfragen, bin ich hier etwas fehlt?

InformationsquelleAutor Maxrunner | 2014-11-13
Schreibe einen Kommentar