我在軌道上使用紅寶石solr。 這一切都運行良好,我只需要知道是否有任何現有的代碼來消毒用戶輸入,就像查詢開始?或*solr消毒查詢
Q
solr消毒查詢
5
A
回答
7
我不知道有這樣的代碼,但理論上可以通過查看parsing code in Lucene並搜索throw new ParseException
(只有16個匹配!)來完成。
實際上,我認爲你最好在代碼中捕獲任何solr異常並顯示「無效查詢」消息或類似的東西。
編輯:這裏有一對夫婦的 「消毒劑」 的:
3
的Solr Security和Solr Query Syntax wiki頁面可能有關。
1
如果您使用Solarium和PHP,那麼您可以使用Solarium_Escape::term()
方法。
/**
* Escape a term
*
* A term is a single word.
* All characters that have a special meaning in a Solr query are escaped.
*
* If you want to use the input as a phrase please use the {@link phrase()}
* method, because a phrase requires much less escaping.\
*
* @link http://lucene.apache.org/java/docs/queryparsersyntax.html#Escaping%20Special%20Characters
*
* @param string $input
* @return string
*/
static public function term($input)
{
$pattern = '/(\+|-|&&|\|\||!|\(|\)|\{|}|\[|]|\^|"|~|\*|\?|:|\\\)/';
return preg_replace($pattern, '\\\$1', $input);
}
相關問題
- 1. ADOdb消毒查詢
- 2. 消毒查詢使用in_array()
- 3. 消毒一些SQL查詢
- 4. C++ SQL消毒庫或查詢生成器發售消毒
- 5. 消毒一個POST陣列INSERT查詢
- 6. Solr的查詢 - 書面Solr的查詢
- 7. solr多查詢器查詢
- 8. 查詢Solr中
- 9. Solr dismax查詢
- 10. Solr查詢:用+
- 11. SOLR MoreLikeThis查詢
- 12. building solr查詢
- 13. solr JOIN查詢
- 14. 消毒的Array
- 15. 消毒Vaadin RichTextArea
- 16. 消毒在Perl
- 17. VBScript SQL消毒
- 18. JavaScript消毒庫
- 19. 消毒輸入
- 20. CakePHP的消毒
- 21. PHPMailer消毒
- 22. 消毒PHPSESSID
- 23. 使用內部SELECT查詢「消毒」任意SQL?
- 24. WMI查詢來統計MSMQ毒性隊列中的消息數
- 25. 在Adodb for PHP中對SQL查詢進行消毒輸入
- 26. 輸入消毒和參數化查詢是否互斥?
- 27. 查詢在Solr的
- 28. SOLR OR查詢PHP
- 29. SOLR查詢升壓
- 30. SOLR短語查詢