[英]Http GET request to Apache solr with umlauts from node.js
我正在嘗試使用網址參數中的變音符號提出請求,以獲取建議:
function getRecommendations(auth, callback) {
var params = '+"olivenöl"';
var host = 'something.com';
var path = "/solr/cloud/select?q=*&fq=ingredient_t:(" + params + ")";
var options = {
"host": host,
"path": path,
"method": 'GET',
"headers": {
"Authorization": auth,
"Content-Type": "application/json",
"Accept": "application/json",
}
};
http.request(options, function (res) {
res.setEncoding('utf8');
var body = '';
res.on('data', function (d) {
body += d;
});
res.on('end', function () {
callback(body);
});
});
}
如果網址參數中包含德語變音符號,則響應的建議列表為空。
我嘗試將其編碼為ö=> oe或ü=> ue ...,但是沒有系統跳過參數。
有人知道如何編碼UMLAUTS嗎? 我也很困惑是這個HTTP GET問題還是Solr問題。
謝謝你的幫助。
在每種情況下,我建議使用encodeURIComponent()
函數對在查詢字符串中傳遞的參數進行編碼。
但我也建議測試您的Solr實例是否已正確配置為處理帶有UMLAUTS特殊字符的查詢。
您可以直接在瀏覽器中執行此操作,例如使用UMLAUTS特殊字符執行查詢。
這樣我們就可以排除與Solr配置有關的問題,但這是在您的node.js請求實現中。
另一件事,只需仔細檢查Solr是否返回json。 並且,如果您希望確保在查詢中添加wt=json
參數。
var ingredient = encodeURIComponent(params);
var path = "/solr/cloud/select?q=*&wt=json&fq=ingredient_t:(" + ingredient + ")";
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.