2013-07-18 2 views
1


Как я могу искать внутри массива многозначного поля
Мои данные, как это
Фильтрация многозначное поле в Solr

<str name="Key">8</str> 
     <arr name="city"> 
      <str>Achabal (NAC)</str> 
      <str>Addi Gam</str> 
      <str>Adeh Hall</str> 
      <str>Aho Paisan</str> 
      <str>Akin Gam</str> 
      <str>Akura</str> 
      ....... 
     </arr> 
     <str name="state">Chandigarh</str> 

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

q=city:*Ak* AND state:Chandigarh <br> 

Но не работает
Вышеуказанные данные в единый документ

ответ

2

Многозначные поля не имеют разницы с моновалютным полем (с точки зрения запроса). Обратите внимание, что в вашем запросе есть ошибка: SOLR не поддерживает использование символа * в качестве первого символа поиска.

Смотрите ссылки ниже

http://wiki.apache.org/solr/AnalyzersTokenizersTokenFilters#solr.ReversedWildcardFilterFactory http://solr.pl/en/2010/12/20/wildcard-queries-and-how-solr-handles-them
http://www.solrtutorial.com/solr-query-syntax.html

0

Вы не должны использовать & в своем запросе, кроме + или% 20 (пробел). & отделяет параметры запроса url и состояние состояния не будет передано как значение для q.

Пробег: q=city:*Ak*+state:Chandigarh или q=city:*Ak* state:Chandigarh.

То, что вы, вероятно, также хотел бы сделать, это использовать фильтр запроса вместо параметра запроса здесь: q=city*Ak*&fq=state:Chandigarh

Это будет запрашивать для всех городов с «Ак» и предельных результатов только те, с государственным = «Чандигарх»

+0

Спасибо за ответ Но попробовали все опции вы упомянули выше, в каждом случае она возвращается все значения из города для конкретного состояния – Siva

+0

Are вы используете фильтр N-gram? Если вы находитесь, solr будет игнорировать состояние: Chandigarh скорее использует состояние: 15, то есть 15 в качестве идентификатора состояния, предполагая, что вы можете получить идентификатор состояния из поиска db. Когда я активирую фильтр N-грамм, solr выталкивает мое не целое поле. Видно, отлаживая запрос. - Удача. –

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