2016-10-19 34 views
0

我的應用程序使用手電筒searchengine,在我的彈性表中我存儲的數據有兩個字段id: { name: "", uid: "" }。當我想要檢索某個值時,我只想在名稱字段中進行部分匹配,並在匹配工作時檢索所有兩個字段。 在我的請求數據通常我店這種結構firebase手電筒部分匹配只有一個字段

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

結果是肯定的,但是,在這種情況下,手電筒搜索在各領域的部分比賽,因爲如果我做一個與之匹配的部分UID或部分名稱的結果總是正面的(如果字符串對應)。

我該如何做一個部分匹配只有一個字段?

我的服務器端搜索隊列是這樣

_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)); 
     } 
    }, 

在此先感謝

回答