問題タブ [foselasticabundle]
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.
symfony - FOSElasticaBundle and Doctrine Hydration
I'm busy checking out elasticsearch for a new project that I'm starting on. I'm currently running Symfony2.5, with the latest FOSElasticaBundle and all that. I'm doing some benchmarks into performance of the bundle (I know elastic in itself is pretty darn fast), but I've come across a small problem that may actually be easy to solve, if only the bundle's documentation were more verbose.
My actual question is simply how to, instead of returning an array of Doctrine objects (which I believe are populated via a DB query), to return a "raw" array of the response from Elastica itself? Including the response time, max score, etc. The docs for the FOSElasticaBundle are pretty vague on these topics...
It seems a bit counter-productive and slow to have to re-query the database when you already have all the information you're looking for from elastic? Or is there something very obvious that I'm missing here?
Thanks for any help!
php - FosElasticaBundle にデータを入力すると、php メモリが不足し、メモリ リークの可能性がありますか?
FOSElasticaBundle をインストールして、データの断面を操作しました。
私の問題は、インデックスを作成するために使用する必要がある行が約 1,400 万行あるという点で発生します。populate コマンドを実行したところ、昨日約 6 時間後に 10.8% でメモリ エラーが発生しました。
ご覧のとおり、php のメモリ制限を 2G に設定しましたが、これはかなり過剰なはずです。
エラーの前の最後の行は次のようになりました
そして、電流とピークは、30MB 前後から、すべての行で刻々と増加していました。
ここでの私の仮定は、ある種のメモリリークがあるということですか? 確かに、このプロセスによって php のメモリが使い果たされることはありません。また、いくつかの追加パラメーターを使用してコマンドを試しました
しかし、私がそれを実行しているのを見ると、現在のメモリはまだカチカチ音をたてています。
ここで何が起こっているのか、それをデバッグするために何ができるかについて何か考えはありますか? 私の問題のように聞こえるこの議論を見つけましたが、実際には良い解決策を提示していません: https://github.com/FriendsOfSymfony/FOSElasticaBundle/issues/82。私は教義とデフォルトのプロバイダーを使用しています。
ありがとうございました-
java - ElasticsearchでのSymfony FOSElastica ResponseException
Composer を使用して FOSElastica 3.0 を Symfony プロジェクトにインストールしました。これは私の設定です:
かなり単純ですね。
今私がするとき
php app/console fos:elastica:populate
それは私に言います:
どうしたの?
編集:同じ問題fos:elastica:reset
php - Symfony2 で FOSElasticaBundle を使用して任意の検索で空の配列
私はそれを整理できないという問題を抱えています.私はこれのためにウェブ上で見つけたすべてを試しました.
ですから、私は Symphony にかなり慣れていませんが、検索エンジンを実装する必要があるまで、これまでのところ問題はありませんでした。Elastico が非常に良い選択であることがわかり、それを実装することにしました。
composer を使用してインストールしましたが、問題ありません。最も基本的な検索の場合、私の構成は次のようになります。
でデータを生成するのに問題はありませんphp app/console fos:elastica:populate
。結果は正しく挿入されます (一致する番号またはエントリとデータベース エントリ)。
したがって、私の問題は、結果を表示できないことです。の結果として常に空の配列があります:
の結果も空です:
$repositoryManager = $this->container->get('fos_elastica.manager');
$repository = $repositoryManager->getRepository('WebsiteWebBundle:Story');
$results = $repository->find('name');
データベースに「name」という名前のレコードがあるので、結果を取得する必要があります。文字の検索も機能しません。
だから、誰かが私が間違っていることを教えてもらえますか? または、すべての結果を表示して、結果が表示され、検索のみが失敗することを確認する方法はありますか?
ありがとう
symfony - エラスティック検索を使用してフィールドにカスタム アナライザーを適用する適切な方法、複数のアナライザーを 1 つのフィールドに適用する方法、または単一のアナライザーを使用して複数のフィールドに適用する方法はありますか?
編集:現在のクエリを最後に追加しました
私は人間の名前の大規模なデータベースを持っており、(symfony2 の FOSElasticaBundle と Elastica を介して) エラスティック検索を使用して、名前をよりスマートに検索しています。
氏名フィールドがあり、標準、ngram、および音声アナライザーを使用して人々の名前にインデックスを付けたいと考えています。
エラスティック検索でアナライザーをセットアップしました。これで、インデックスへのデータのダンプを開始できます。ここで行っている方法が最善の方法なのか、それともアナライザーを単一のフィールドに適用できるのか疑問に思っています...私が尋ねる理由は、 get /website/person/:id を実行するときだからです、プレーン テキストで 3 つのフィールドがすべて表示されます...ここで分析されたデータが表示されることを期待していましたが、ドキュメントではなく転置インデックスにのみ存在する必要があると思います。私が見た例では複数のフィールドを使用していますが、単一のフィールドに複数のアナライザーを追加することは可能ですか?
私のconfig.yml:
マッピングを確認すると、良さそうです。
ドキュメントを GET すると、3 つのフィールドすべてがプレーン テキストで保存されていることがわかります。おそらく、これらの追加フィールドに STORE: FALSE を設定する必要がありますか、それとも適切に分析されていませんか?
編集:私が現在使用しているソリューションは、まだいくつかの改良が必要ですが、ほとんどの名前でうまくテストされています
elasticsearch - ElasticSearch RoutingMissingException
親子関係を持つオブジェクトを設定しようとしていますが、エラーが発生します:
[Elastica\Exception\ResponseException] RoutingMissingException[[myindex]/[comment]/[12345] にはルーティングが必要です]
タイプ conf からの抜粋:
ここで何が欠けているのか理解できません....
Symfony2.3、FOSElasticaBundle 3.0、ElasticSearch 1.2.2 を使用しています
foselasticabundle - Elasticsearchの結果を距離でソートする方法は?
私はsymfony2にelasticabundleを使用していて、私が探している結果を距離でソートしたいのですが、elasticsearchは初めてで、使用しているクエリを開始する方法がわかりません:
御時間ありがとうございます
symfony - ESサーバーなしでFOSElasticaBundleを使用してSymfonyアプリケーションを単体テストしますか?
SQLite を DB として使用している単体テストの既存のセットを含むアプリケーションがあります。私は最近、ES を介して検索機能を追加しました。これは、DB を直接クエリするために使用されていたエンドポイント アクションの多くを置き換えました。ES 自体をテストせずに、これらのエンドポイントに関連するすべてのビジネス ロジックをテストしたいので、ES サーバーを使用できません。実行頻度を減らすために、一連の統合テストで ES 自体をテストする予定です。
私の問題は、実行フローで何が起こっているかを正確に追跡しようとすることです。
私の最初の傾向は、インデックス用に FOSElasticaBundle が作成する ES Finder のモック オブジェクトを単純に作成することでした。ページネーションを使用しているため、思ったよりも複雑であることがわかりました。
これは実際には、コントローラーからビューを返すまでずっと機能します。私のサービスは、ファイルに保存した (その後 ResultSet オブジェクトに渡した) JSON 検索応答から事前に入力された結果セットを含むモック paginatior アダプターを返します。ただし、ビューを返すと、既に渡した ResultSet を使用する代わりに、クエリを使用して ES を再度クエリしようとするリスナーが関係しているようです。
このリスナーが見つからないようです。また、 ResuletSet が既に存在するときにクエリを実行しようとする理由もわかりません。
私は FOSRestBundle も使用しており、それらの ViewListener を使用して、返されたものを自動シリアル化しています。その流れにも容疑者は見えません。結果セットのシリアル化と関係があるのではないかと思いますが、これまでのところ、問題のあるコードを追跡できていません。
以前にこれと同様のことを試みた人はいますか?現在のセットアップをデバッグする方法、またはこのタイプのテストで ES をモックするための代替のより良いセットアップのいずれかについて提案がありますか?