見出し画像

6.Elasticsearch 3分でやるRegexp Query

Author:Makito

HP:Walker Industries LCC

アームカールのレクチャーはどっかでやります笑

検索文字列内を検索する際にどうしてもこのパターンにあう文字列が。。。
というシーンがあると思います。
文字列のパターン検索といえば正規表現
MySQLにも正規表現が使えるようにElasticsearchにも使えます。


Regexp Query

Regexp=正規表現の用語クエリを使用できます。
サポートされている正規表現言語の詳細については、
正規表現構文を参照してください。

mappingのフィールドのトークナイザによって生成された用語に正規表現を適用することを意味します。

正規表現がわからない人は、とりあえず「[a-z],[0-9],^ $ *」などの記号から調べて覚えていきましょう。
文字列のパターン抽出です。

Query


#Regexp Query
GET {Index}/{Type}/_search
{
"query": {
"bool": {
"filter": [
{
"regexp": {"{Document}": "正規.*"}
}
]
}
}
}
#複数
#Regexp Query

GET  {Index}/{Type}/_search
{
"query": {
"bool": {
"filter": [
{
"regexp": {"{Document}": "正規.*"}
},
{
"regexp": {"{Document}": "Elastic.*"}
}
]
}
}
}

※注意
regexpクエリのパフォーマンスは、選択した正規表現に大きく依存します。
*のようなものすべてにマッチするのは非常に遅く、
見た目の正規表現を使用するだけです。
可能であれば、正規表現が始まる前に長いプレフィックスを使用するように
してください。
*?+のようなワイルドカードマッチャーは、ほとんどパフォーマンスを低下させます。


蛇の足

まだ正規表現使ってElasticsearch検索の事例に当たってないっていう笑

一つの小技として覚えていきましょう。


+++++++++++++++++++++++++++++++++++++++++++++++++++

Walker Industries LCC


PROFESSIONAL OF AMAZON WEB SERVICE.
WEB SYSTEM DEVELOPMENT


導入から運用までのスピード、多様な柔軟性、最新のサービス、
目的に合わせた環境構築を提供します。

AWS(Amazon Web Services)を得意とするエンジニアチームの為、迅速・柔軟な対応が可能です。

運用負担の軽減、急激なトラフィックに耐えうる設計、固定資産から経費計上化、etc... AWS運用・構築はお任せ下さい。




この記事が気に入ったらサポートをしてみませんか?