2016-06-21 64 views
0

我正在使用php和solr,我面臨的問題是,無論何時查詢是動態構建的,有時候查詢沒有正確的語法或傳遞適當的參數。Apache solr在solr上執行之前驗證查詢

因此,我得到了solr日誌中的錯誤。

我需要一個解決方案,以便語法錯誤的查詢不應該由應用程序執行。

回答

0

你的Solr庫應該爲你處理所有事情 - 逃避需要轉義的地方等。如果你自己構建URL,你會have to escape the valuesSolr expects to be escaped,並根據需要正確地urlencode值。

這裏的名單從ClientUtils上面的鏈接:

// These characters are part of the query syntax and must be escaped 
    if (c == '\\' || c == '+' || c == '-' || c == '!' || c == '(' || c == ')' || c == ':' 
    || c == '^' || c == '[' || c == ']' || c == '\"' || c == '{' || c == '}' || c == '~' 
    || c == '*' || c == '?' || c == '|' || c == '&' || c == ';' || c == '/' 
    || Character.isWhitespace(c)) {