2016-10-19 3 views
0

私のアプリ私は弾力テーブルで私は2つのフィールドid: { name: "", uid: "" }とデータを格納する懐中電灯のsearchengineを使用します。特定の値を取得したいときは、名前フィールドに部分一致のみを行い、一致した場合は2つのフィールドすべてを検索します。私の要求データで 通常、私は結果は私が部分的UIDまたは部分的な名前で結果を試合をすれば、この場合には懐中電灯があるため、すべての分野での部分一致検索、正のですが、ファイヤーベースの懐中電灯部分一致の1つだけのフィールド

search : { 
    request: { 
    -54shdjwirjghcb7364gf92jcns20ahd: { 
     index: "firebase", 
     type: "event", 
     from: 0, 
     size: 50, 
     query: "*fra*" 
    } 
    } 
} 

このような構造を保存(文字列が対応している場合)常に正です。

1つのフィールドに対して部分一致のみを行うにはどうすればよいですか?

私のサーバー側検索キューは

答えて

0

がクエリとして"name:*fra*"を使用してみてください、事前にこの

_process: function (snap) { 
     var dat = snap.val(); 
     var key = snap.key; 

     if (this._assertValidSearch(key, dat)) { 
      // Perform (a very simple) ElasticSearch query 
      this.esc.search({ 
       index: dat.index, 
       type: dat.type, 
       from : dat.query.from, 
       size : dat.query.size, 
       q: dat.query 
      }, function (error, response) { 
       if (error) { 
        this._reply(key, { error: error, total: 0 }); 
       } else { 
        this._reply(key, response); 
       } 
      }.bind(this)); 
     } 
    }, 

のおかげです。クエリのプロパティは、qパラメータとしてelasticsearchに渡されます。

ここで確認してください:https://www.elastic.co/guide/en/elasticsearch/reference/5.0/search-search.html

関連する問題