Это не красиво, но:
SELECT * FROM books WHERE russian_name = ? OR english_name = ? OR CONCAT(russian_name, ' ', year) LIKE ? OR CONCAT(english_name, ' ', year) LIKE ?
где в строке запроса указываются первые два знака вопроса, а во втором и третьем -:
'%' . str_replace ( ' ', '%', $query ) . '%'