部分的に数値フィールドに一致させようとしています。以下のクエリでは、私は419で始まるすべてのドキュメントを一致させるために(ロングとして定義される)のIDをたいと思います(その4191がすべき419534ではなく123419として、一致している必要があります)番号フィールドの弾性検索部分一致
{
"size": 20,
"from": 0,
"sort": [{
"customerName": "asc"
}],
"query": {
"bool": {
"must": [{
"bool": {
"should": [{
"term": {
"id": 419
}
}]
}
}]
}
}
}
誰もが持って私のクエリで使用するきちんとしたソリューション?
"mappings": {
"default": {
"properties": {
"id": {
"type": "integer",
"fields": {
"prefixed": {
"type": "string",
"index": "not_analyzed"
}
}
},
...
}
}
}
をし、そのフィールドに対してprefix queryを使用します:
この回答は役に立ちました:http://stackoverflow.com/questions/36199531/how-to-f uzzy-match-email-or-elasticsearch/36200119#36200119しかし、代わりにあなたの 'id'を文字列として保存する必要があるかもしれません。 – Val
文字列に変換するのは簡単ですが、私は誰かがより良い/異なる解決法を知っていることを期待していました。部分の数字を分割すると(たとえば1 12 123)、数字を探す複雑な方法のように思えます。私はそれを文字列に変換し、何か解決策があるかどうかを見るためにこれを開いたままにしておきます。もう一度お手伝いをしてくれて、あなたは邪悪です。 –
青から、代わりに 'query_string'を使い、' 419 * 'をクエリとして使うことができますか? – Val