Solr 5.4.0; Ruby: 2.2.4; Рельсы: 4.2.6 здесь категория A = цвет и B = productBrand проверить, как ваш фильтр запроса FQ Для меня начальная
FQ = [{ "! Термин е = цвет} Синий", "{ ! термин е = цвет} черный», "{! термин е = productBrand} Яблоко"]
Но после того, как ссылаются Blacklight примеров из https://github.com/sul-dlss/revs их фильтр запрос также похож
"fq" => ["((: -visibility_isi: [* TO *]) ИЛИ visibility_isi: 1)", "{! Raw f = format_ssim} черно-белые негативы", "{! Raw е = marque_ssim} Форд», "{! сырым е = marque_ssim} Chevy"], который работает
но не работает для меня, и blacklight_advanced_search проблема --version
Итак, я изменил request.rb файл - изменить действие append_filter_query в соответствии с требованиями редактировать Также catalog.rb
config.add_facet_field 'productBrand', этикетка: 'Марка',: тег => 'некоторые-тегов', экс => 'некоторый тег'
config.add_facet_field 'цвет', метка: 'Цвет',: тег => 'цвет', экс => 'цвет'
После редактирования файлов я получил эту FQ, который работает, как я хочу, чтобы это было (аналогично запросу ur) выбирает Bl у.е или черный и Apple,
FQ = [ "цвет {тег = цвет!} (синий черный)", «{!тег = некоторые тег} productBrand: (Apple)]
не может быть хорошим способом для редактирования request.rb, но не смог в состоянии выяснить, альтернативный способ
см request.rb в \ рубинового \ драгоценные камни \ 2.2.0 \ \ драгоценных камней Blacklight-6.0.2 \ Lib \ \ Blacklight ГУМЗ
Ref: http://yonik.com/multi-select-faceting/
Пример КОД:
def append_filter_query(query)
#$facet_value=query
unless query.nil?
$r= /.*}(.*)/.match(query)[1]
$l=/^({.*})/.match(query)[1]
if self['fq'].empty?
ampati()
else
$flag_new=false
self['fq'].each{|item|
$s=/.*}(.*\w)*:/.match(item)[1]
unless $l.include? $s
#$s=color
$flag_new=true
else
$flag_new=false
end
}
if $flag_new
ampati()
else
self['fq'].map!{|item|
$fac=/.*}(.*\w)*:/.match(item)[1]
if $l.include? $fac
item=/(.*\w)/.match(item)[1]<<" "<<$r<<")"
else
item
end
}
end
end
end
end
def ampati()
if $l.include? "color"
$c="{!tag=color}color:("<<$r<<")"
self['fq']<<$c
end
if $l.include? "productBrand"
$e="{!tag=some-tag}productBrand:("<<$r<<")"
self['fq']<<$e
end
end
Благодарим вас, что ответили. Пожалуйста, подумайте над редактированием сообщения, чтобы использовать обратные тики для форматирования встроенного кода. –