App Search

アプリ検索

検索は、ユーザーエクスペリエンスを生み出すことも壊すこともできます。関連性の高い結果をすばやく表示させることが重要です。Elasticsearchは、現在最も人気のあるオープンソースの検索エンジンです。その理由は以下のとおりです。

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

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

あらゆる人が何かを探しています。クレジットカードのレシート、デート、食事、シャンプーボトル、あるいは帰りの乗り物を見つけられるように、Elasticsearchは、Wikipedia、Esri、Intuit、Yelp、Tinder、Dell.comなどの何千というアプリケーションやWebサイトの検索のユーザーエクスペリエンスを向上しています。

ドキュメント検索、eコマース検索、地理情報検索、グラフ検索など、可能性は無限大。 始める方法を学びましょう

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

他のシステムでは実行に何分も、時には何時間もかかるクエリが、Elasticsearchでは数ミリ秒しかかかりません。ペタバイトのデータを可用性が高く、簡単にアクセスできるようにし、、お客様が投入した文字列、数値、日付、IP、地理データを高速に処理できます。

さらに、スモールスタートやスケールアウトが簡単です。また、インデックスやクエリは、自動的にクラスタ内部で分散されます。

自社で構築可能

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

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

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

(10万人以上のメンバーが世界中のコミュニティで活動しています。私たちのお気に入りの特長の1つです。)

									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が掲げているルールです。同社は、スマホアプリのために利用していた、利用するのが難しい独自の検索ソリューションをElasticsearchに置き換えることにより、お客様への約束をを守っています。

Elasticを検索に利用しているお客様はこれだけではありません。他のユーザー事例もご覧ください

メトリックも、プロキシやファイアウォールのログも、膨大なドキュメントも、すべてElastic Stackへ。

ログ

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

詳細

メトリックス

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

詳細

Swiftype Site Search

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

詳細

セキュリティ分析

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

詳細

APM

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

詳細