1. ホーム
  2. html

[解決済み] Elasticsearchのデータをangularjsで検索する。

2022-02-10 15:06:32

質問

htmlフォームから入力された'Index'と'Type'を元に検索したい。angularもElasticsearchも初めてです。

このコードを使って、ng-modelで変数をバインドしてみました。

ExampleApp.controller('MatchController', function ($scope, client, esFactory) {
    function click($scope){
        $scope.index = '';
        $scope.type = '';
        $scope.key = '';

client.search({
index:  $scope.index ,
type: $scope.type ,
size: 50,
body: {
"query":
    {
        "match": {

            name:  $scope.key
        }   
    },
}

html コード...

<input type="text" ng-model="index" id="index" /> <br><br>
<input type="text" ng-model="type" id="type" /><br><br>
<input type="text" ng-model="key" id="key" /><br><br>
<input type="button" value="search" onclick="click()">

このようなことは可能なのでしょうか?可能であればどのように?

ありがとうございました。

解決方法は?

エラスティックサーチに接続し、関数を使用してクエリを実行するためのサービスを作成する必要があります。

https://www.sitepoint.com/building-recipe-search-site-angular-elasticsearch/

上記リンク先では、elasticsearchとAngularJSを使ってクエリを作成し、実行する方法を紹介しています。私が言及したサービスは、コードの最後のブロックに書かれています。しかし、私はあなたがより良い理解を与えるために、記事全体を読むことをお勧めします。

そうでなければ、コントローラが呼ばれるたびに、そのサービスも呼ばれることになり、望ましくないことになります。