Поскольку root545 уже объяснил, что field:foo bar
будет искать foo
в field
и bar
в поле поиска по умолчанию, я полагаю, что вам не нужно беспокоиться о точном Lucene синтаксис для поиска. Парсер запросов edismax хорошо подходит для отделения типизированной строки поиска от полей, в которых выполняется поиск, и от того, хотите ли вы, чтобы все токены совпадали.
Запрос в этом случае будет просто Chinmay Sahu
, в то время как вы установите q.op=AND
(все термины должны совпадать), defType=edismax
(используйте синтаксический анализатор запросов edismax) и qf=name
(поиск в поле имени) :
q=Chinmay Sahu&q.op=AND&defType=edismax&qf=name
Вы также можете настроить различные параметры фразы, чтобы убедиться, что имена с токенами в той же самой последовательности будут увеличены выше, чем те, у которых они есть в противоположной последовательности (т. Е. Саху Чинмай).
Если это программный поиск, когда ни один пользователь фактически не набирает в предложении, использование поиска фразы, как предложено, является подходящим способом (name:"Chinmay Sahu"
).