問題タブ [amazon-cloudsearch]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
amazon-web-services - Amazon CloudSearch のステミングとシノニムの違いは何ですか?
私は現在、クラウドサーチ分析スキームを調整して、より関連性の高い検索結果を提供する方法を検討しています。(私は思う) 語幹と同義語の概念的な違いを理解しています。語幹は、「walk、walking、walked」などの派生語か、「Company、Companys」などの非複数形であり、検索の観点から同じ用語として扱いたい場合があります。もちろん、同義語は、「会社、企業、ビジネス」や「電子メール、メッセージ」など、同じ意味 (または、ユーザーが用語を混ぜて一致させるのに十分近い意味) を持つ単語です。
私が間違っている場合は、上記で私を修正してください。
機能的な観点から、インデックスが構築されて検索が実行されるとき、語幹はシノニムとどのように異なる方法で扱われるのでしょうか? 同義語リストに「歩く、歩く、歩く」などの派生語を入れても、機能に違いはありませんか?
solr - レポートに Cloudsearch/Solr を使用する
Cloudsearch/Solr エンジンを使用してレポートを生成することは可能ですか (ファセット検索を使用)? このデータにエンドユーザーが作成したタグ (無制限の数) が含まれている場合でも、データに関するカスタムレポートを (ほぼリアルタイムで) 生成する良い方法はありますか?
search - 5,000 万件のドキュメントに効果的な検索エンジンをお勧めしますか?
検索できるようにしたい 50,000,000 の (そして増え続ける) ドキュメントがあります。
各「ドキュメント」は、実際にはより大きなドキュメントのページですが、必要な粒度はページ レベルです。
したがって、各ドキュメントにはいくつかのメタデータがあります (たとえば、どの大きなドキュメントに属しているかなど)。
私たちはもともとこれを Sphinx を使用して構築しました。これは非常にうまく機能しましたが、非常に寛大なハードウェアが (Amazon AWS 経由で) 投入されたにもかかわらず、遅くなりつつあります。
検索する前にデータベースを事前にフィルタリングできるようにする必要があるという新しい要件があります。つまり、メタデータのある側面に基づいて 50M ドキュメントのサブセットのみを検索します (たとえば、「最後に追加されたドキュメントのみを検索する」など)。 6 か月」、または「親文書のこの任意のリストに属するこれらの文書のみを検索する」)
重要な要件の 1 つは、親ドキュメントごとに検索結果をグループ化することです。たとえば、多数の一致ではなく、結果の最初のページで一致する親ドキュメントのより広い範囲をユーザーに表示するために、親ドキュメントの最初の一致のみを返すようにします。最初の親ドキュメントで、続いて 2 番目の親ドキュメントで多数の一致が続く、などです。その後、特定の 1 つの親ドキュメント内でのみページを検索するオプションをユーザーに提供します。
ソリューションは「無料」である必要はなく、多少の予算を費やす必要があります。
コンテンツは機密性が高く、保護する必要があるため、Google に単純にインデックス登録してもらうことはできません。少なくとも、一般の人々がコンテンツにアクセスできるようにする方法は避けてください。
さらに多くのリソースで Sphinx を使用することを検討しました (5,000 万のドキュメントのインデックスをメモリに格納することは、残念ながら予算内のオプションではありません)。Amazon CloudSearch も検討しましたが、4,000 ドルを超える費用がかかるようです。毎月の予算を超えています。
助言がありますか?AWS 内にデプロイできるものはボーナスです。入手できないものを求めている可能性があることは承知していますが、そうであると思われる場合は、そのように言ってください (理由を教えてください!)。
java - Java SDK を使用して CloudSearch のサービス アクセス ポリシーを更新しようとしています
Java コードで Amazon CloudSearch ドメインのアクセス ポリシーを更新しようとしています。それは可能であるように見えますが、API が不足しているようです。これまでの私のコードは次のとおりです。
UpdateServiceAccessPoliciesRequest は、CloudSearch ドメイン (文字列) とアクセス ポリシー (別の文字列) の 2 つのパラメーターのみを受け取ります。
「withAccessPolicy」のオンライン ドキュメントと javadoc の両方に、「 構成するアクセス ルール。これらのルールは既存のルールに置き換わります。」
ここで単一の文字列を使用して複数のアクセス ルールを定義することになっているという単なる事実は、UpdateServiceAccessPoliciesRequest クラスが http 要求用に設計されたポリ コンテナーであることを意味します。更新文字列は、このコンテキストでは次のようになりますか?
私は AWS Java SDK バージョン 1.7.9 を使用していますが、CloudSearch REST API バージョン 2013-01-01 を使用しているとほぼ確信しています。
amazon-web-services - CloudSearch でのフィールド存在のクエリ
CloudSearch でインデックスを作成したドキュメントのリストに、「xyz」というオプション フィールドがあるとします。
「xyz」を含むドキュメントのみを返すように CloudSearch にクエリを実行するにはどうすればよいですか?
それが正の整数であることを前もって知っていれば、おそらく次のようにして必要なリストを取得できます。
q=xyz:[0,}&q.parser=structured
しかし、「xyz」が文字列や ints/strings のリストなどの他の型を格納している場合、どうすればよいでしょうか?
ところで、私は以前に Solr を使用したことがあり、q=xyz:*これを達成するために簡単に行うことができました。CloudSearch はそのような正規表現をサポートしていますか?
solr - RDS テーブル データの Amazon Cloudsearch への直接インポート
検索したいいくつかの列 (いくつかは地理空間データを含む) に大量のデータを含むテーブルを持つ RDS データベースを持っています。このデータに対する SQL クエリと優れたカバー インデックスは、AJAX 型先行提案フィールドのようなものに使用するにはまだ遅すぎます。
そのため、検索のオプションを調査していて、Amazon CloudSearch (現在は Apache Solr を利用) に出会いました。これは私のニーズに合っているようです。問題は、AWS コンソールを介して RDS からデータをインポートまたは提供する方法が見つからないように見えることです。何か不足していますか?ElasticSearch などの他のソリューションriverには、MySQL データの変換に接続するプラグインがあります。
CSV および XML データを CloudSearch にアップロードするためのコマンドライン ツールがあることは知っています。これまでのところ、mysqldump テーブルを CSV または XML 形式に変換し、CLI ツールを使用して手動でロードするのが最も簡単な方法です。これは、データを取得するための最良の方法であるいくつかの再発生するcronジョブを使用していますか?