我使用Elasticsearch Java API爲搜索創建索引並編寫查詢。 索引是在各個領域創建的。其中一個字段是創建索引的數字(整數)。ElasticSearch [1.4.4]:使用非數字輸入的數值索引範圍搜索
現在我們得到的輸入是字符串的形式。我們必須搜索所有提供的輸入字段。要在數字字段搜索,我們使用
QueryBuilders.rangeQuery() method.
但是當它遇到「到」或「發件人」字段,它拋出
SearchPhaseExecutionException[Failed to execute phase [query].
nested: NumberFormatException[For input string: \"30y\"]
任何非整數值,我該如何避免這種情況?很好,我們沒有得到任何搜索結果,但我想避免這種異常,因爲可能會出現非整數輸入的情況。
另一個選項是檢查所有輸入令牌,我想避免它,因爲它會添加另一個會影響性能的檢查級別。
有什麼辦法可以做到這一點elasticsearch API?
感謝您的有用信息[Val](http://stackoverflow.com/users/4604579/val)。我們最終決定在創建查詢之前檢查輸入。這樣可以節省我們撥打數據庫的費用,以補償檢查所需的時間。 –
不錯,你採取了正確的方法;)這個簡單的驗證檢查肯定是值得的,的確如此! – Val