App Search

アプリ検索

検索が、新たなユーザーエクスペリエンスを生み出すことも、台無しにすることもあります。関連性の高い結果をすばやく表示させることが重要です。Elasticsearchは、最もよく使われているオープンソースの検索エンジンです。その理由をご紹介しましょう。

Elasticのアプリ検索で顧客満足の高いサービスを提供。 今すぐトライ

New ベータ版Elasticのアプリ検索で素早い検索結果を表示し、満足度の高いサービスが提供できます。 今すぐトライ

この24時間で、きっと使ったはず

検索は、あらゆる場面に使われています。クレジットカードの請求書や、デートのお店、帰りの電車の検索でも使ったかもしれません。ElasticsearchはWikipedia、Esri、Intuit、Yelp、Tinder、Dell.comをはじめ、何千ものアプリケーションやWebサイトの検索エクスペリエンス向上に役立てられています。

ドキュメント検索から、eコマース検索、地理情報検索、グラフ検索まで、可能性は無限大。今すぐElastic App Searchではじめましょう

高速でスケーラブルなエンジン

他のシステムでは何分も、時には何時間もかかるクエリを、Elasticsearchは数ミリ秒で実行します。ペタバイトのデータでも高い可用性を保ち、容易なアクセスを実現。取り込んだ文字列、数値、日付、IP、地理データを高速に処理できます。

スモールスタートにも最適です。インデックスやクエリは自動的にクラスター内部で分散され、自在にスケールアウトすることができます。

すべて自在にコントロール

Elasticsearchなら、運用中のアプリの検索エクスペリエンスを総合的に管理できます。Elasticsearchはオープンソースの検索エンジンであり、ブラックボックスではありません。

ユーザーが何を求めていて、いつ検索し、次に何を探そうとしているのかといったインサイトをリアルタイムに取得でき、インサイトに基づく関連度の調整、テキスト解析の設定、クエリの最適化、検索結果のブーストもタイムリーに実施できます。

開発者に使いやすい

Elasticsearchはシンプルで一貫性のあるクエリ言語と、標準的なRESTful APIやJSONを使用します。Python、Ruby、.NET、Java、Groovyなどの各種プログラミング言語のクライアントも用意されており、お好みのスタイルでElasticsearchを使うことができます。

また、10万人以上のメンバーが世界中のコミュニティで活動しています。ぜひご活用ください。

									curl -H "Content-Type: application/json" -XGET
'http://localhost:9200/social-*/_search' -d '{
  "query": {
    "match": {
      "message": "myProduct"
    }
  },
  "aggregations": {
    "top_10_states": {
      "terms": {
        "field": "state",
        "size": 10
      }
    }
  }
}'
								
									RestHighLevelClient client = new RestHighLevelClient(RestClient.builder(
                    new HttpHost("localhost", 9200, "http")).build());

SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
searchSourceBuilder.query(QueryBuilders.matchAllQuery());            
searchSourceBuilder.aggregation(AggregationBuilders.terms("top_10_states").field("state").size(10));

SearchRequest searchRequest = new SearchRequest();
searchRequest.indices("social-*");
searchRequest.source(searchSourceBuilder);
SearchResponse searchResponse = client.search(searchRequest);
								
									var client = new ElasticClient();

var searchResponse = client.Search<Tweet>(s => s
    .Index("social-*")
    .Query(q => q
        .Match(m => m
            .Field(f => f.Message)
            .Query("myProduct")
        )
    )
    .Aggregations(a => a
        .Terms("top_10_states", t => t
            .Field(f => f.State)
            .Size(10)
        )
    )
);
								
									from elasticsearch import Elasticsearch

esclient = Elasticsearch(['localhost:9200'])
response = esclient.search(
index='social-*',
body={
    "query": {
        "match": {
            "message": "myProduct"
        }
    },
    "aggs": {
        "top_10_states": {
            "terms": {
                "field": "state",
                "size": 10
            }
        }
    }
}
)
								
									var elasticsearch = require('elasticsearch');
var esclient = new elasticsearch.Client({
  host: 'localhost:9200'
});
esclient.search({
  index: 'social-*',
  body: {
    query: {
      match: { message: 'myProduct' }
    },
    aggs: {
      top_10_states: {
        terms: {
            field: 'state',
            size: 10
        }
      }
    }
  }
}
).then(function (response) {
    var hits = response.hits.hits;
}
);
								
									$esclient = Elasticsearch\ClientBuilder::create()
              ->setHosts(["localhost:9200"])
              ->build();
$params = [
'index' => 'social-*',
'body' => [
    'query' => [
        'match' => [ 'message' => 'myProduct' ]
    ],
    'aggs' => [
        'top_10_states' => [
            'terms' => [
                'field' => 'state',
                'size' => 10,
            ]
        ]
    ]
]
];
$response = $esclient->search($params);
								
									use Search::Elasticsearch;

my $esclient = Search::Elasticsearch->new( nodes => 'localhost:9200' );
my $response = $esclient->search(
index => 'social-*',
body => {
        query => {
            match => { message => 'myProduct' }
        },
        aggs => {
            top_10_states => {
                terms => {
                    field => 'state',
                    size => 10
                }
            }
        }
    }
);
								
									require 'elasticsearch'

esclient = Elasticsearch::Client.new

response = esclient.search index: 'social-*', body: {
  query: {
    match: {
      message: 'myProduct'
    }
  },
  aggregations: {
    top_10_states: {
      terms: {
        field: 'state',
        size: 10
      }
    }
  }
}
								

仲間がいます:Walgreensの活用事例

「顧客の時間を無駄にしない」は米国の最大手小売企業であるWalgreensが掲げているルールです。同社は、スマホアプリ用の検索ソリューションをElasticsearchに変更して、この約束を実現しています。

Elasticsearchの活用事例はこれだけではありません。他のユーザー事例も併せてご覧ください。

アプリ検索の他にも、機能がたくさん

メトリックも、プロキシやファイアウォールのログも、膨大なドキュメントも、すべてElastic Stackへ。プロキシやファイアウォールのログも、Webサイトやサーバーのログも、集めてElastic Stackに入れてみましょう。よりリッチな検索が可能になります。

ログ分析

高速でスケーラブルなログをリアルタイムに分析。

さらに詳しく

メトリック分析

CPUやメモリなど、幅広いデータを収集し、分析。

さらに詳しく

Swiftypeサイト内検索

ウェブサイトの検索機能を大幅に向上。

さらに詳しく

セキュリティ分析

高速かつ大規模な、リアルタイムの異常検知。

さらに詳しく

APM

パフォーマンスメトリックを収集し、分析。

さらに詳しく