2010-07-07 2 views
0

У меня сложнее построить URL-адрес для запроса с более чем одним мультифактором. Я следую за образец здесь:Solr - многофакторный синтаксис

http://www.craftyfella.com/2010/01/faceting-and-multifaceting-syntax-in.html

Например, посмотрите на screendump eBay, как бы URL выглядеть, если вы выберите «Sony» и «LG» в разделе «марка» а затем выберите «LCD» в разделе «Тип»?

Предположим, что BRAND и TYPE определены в schema.xml.

Этот URL будет работать, если вы выберете «Sony» и «LG» в разделе «марка»:

...&facet=on&facet.field={!ex=BRAND}BRAND&fq={!tag=BRAND}BRAND:Sony%20OR%20LG 

Но что, если вам нужно иметь выбор как от «Марки» и «типа»? Я пробовал это, но это не дает мне то, что я хочу:

...&facet=on&facet.field={!ex=BRAND}BRAND&fq={!tag=BRAND}BRAND:Sony%20OR%20LG&facet.field={!ex=TYPE}TYPE&fq={!tag=TYPE}TYPE:LCD 

Любая помощь приветствуется.

ответ

0

Если вы дважды укажете fq, будут сохранены только документы, соответствующие обоим фильтрам. Это похоже на наличие одного fq с AND для условий. Возможно, это не то, что вы хотите. Если вы хотите, чтобы документы имели один или другой фильтр, вам нужно будет использовать только один fq и объединить условие с OR.

UPDATE
После повторного мышления, это, вероятно, больше смысла иметь и между брендом и типа фильтров.

Кроме того, не забудьте еще раз указать, в каком поле вы применить второе условие Брэнд Fq:

fq=BRAND:Sony+OR+BRAND:LG 

Наконец, вы можете указать один и тот же исключение для обоих facet.field, учитывая:

...&facet=on&facet.field={!ex=bt}BRAND&facet.field={!ex=bt}TYPE&fq={!tag=bt}BRAND:Sony+OR+BRAND:LG+OR+TYPE:LCD 
+0

Спасибо. Ты прав. – thd

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