[英]firebase flashlight partial match for only one field
對於我的應用程序,我使用手電筒搜索引擎,在我的彈性表中,我存儲了一個具有兩個字段id: { name: "", uid: "" }
的數據id: { name: "", uid: "" }
。 當我想檢索某個值時,我只想在名稱字段中進行部分匹配,如果匹配成功,則要檢索所有兩個字段。 在我的請求數據中,通常我存儲此結構
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));
}
},
提前致謝
嘗試使用"name:*fra*"
作為查詢。 查詢屬性作為q參數傳遞給elasticsearch。
在此處檢查: https : //www.elastic.co/guide/zh-CN/elasticsearch/reference/5.0/search-search.html
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.