2012-06-08 4 views
1

У меня есть несколько полей в моей схеме, как показано ниже:Solr скоринг для запроса фильтра

hotel_name: некоторое название отеля

город: некоторые города

county_code: DE

улица: некоторые улицы ,

Мой запрос, чтобы найти некоторые отели, выглядит следующим образом.

select/fq=city:"Berlin"&fq=country_code"DE"&fq=hotel_name:"achat berlin hotel"=city:"Berlin"&fq=country_code"DE"&fq=hotel_name:"achat berlin hotel" 

Возвращаемые значения, cotains Множество отелей, найденных с несколькими или более маркерами, обработанных в поле hotel_name. Если я хочу коротко, эти документы на число маркера совпадают в файлах hotel_name, как я могу это сделать. Я хотел бы сохранить максимальное количество согласованных токенов в поле hotel_name вверху.

E.G. если название отеля котаин все три жетона: ахат, берлин и отель, он должен появиться наверху. и нижнее совпадение должно появиться ниже.

Возможно ли заручиться документом в зависимости от количества маркеров, согласованных по полю.

ответ

0

Каков тип поля "hotel_name" в schema.xml?

Кроме того, вы уже пробовали? По умолчанию Solr учитывает координационный фактор:

«Если в запросе есть несколько терминов, чем больше терминов, которые соответствуют, тем выше оценка». Итак, я думаю, что это уже происходит в вашем случае.

+0

Это происходит не автоматически. Иногда я получаю документы с меньшим количеством совпадений, впереди больше матча. hotel_name имеет тип: –

2

Ну, во-первых, ваш запрос плохо сформирован. Вам необходимо запустить запрос с помощью ? с параметром q, указать : между именем и значением поля country_code, и вам не нужно повторять параметры fq. Оно должно быть:

?q=*:*&fq=city:"Berlin"&fq=country_code:"DE"&fq=hotel_name:"achat berlin hotel" 

hotel_name, country_code и city эти fq параметров будут лексемы и проанализированы в соответствии с вашими schema.xml и могут точно соответствовать или не в зависимости от помоев запроса, указанных в solrconfig.xml.

Можно ли забрать документ в зависимости от количества маркера , соответствующего каждому полю.

Оценка в solr не является буквальной, поэтому нет, не совсем.

E.G. если название отеля cotain все три токена: achat, berlin и отель, он должен появиться наверху. и нижнее совпадение должно появиться ниже.

Вы ввели запрос в виде фразы (это указано с " с), так Solr будет по умолчанию найти точное словосочетание, и дать ему соответствующий балл. Если query slop (параметр qs) настроен в вашем solrconfig.xml, тогда также будет добавлен счет от неряшливого запроса.Что вы, вероятно, действительно хотите:

hotel_name:achat berlin hotel 

Это вопрос без фразы.

Смежные вопросы