Solr: каков синтаксис «LIKE» на фильтрах (fq) - PullRequest
0 голосов
/ 17 марта 2011

В моем SOLR я проиндексировал ключи (преобразованные в строку, потому что массив не был сохранен) группы, у которой есть разрешение на отображение объекта.

<visibility>
6-15-8
</visibility>

'fq' => "current_status_i:".Ressource::STATUS_PUBLISHED ." + lang_t:".$culture. "+ visibility_s".$visibility

Проблема состоит в том, что если для видимости вводится 15, он выдаст 0 результатов, поскольку он не соответствует 6-15-8.

Итак, *каков синтаксис для имитации "LIKE" *, чтобы получить результат, если ввод 15 или 8 ....

Спасибо

Ответы [ 2 ]

2 голосов
/ 17 марта 2011

Вам нужно использовать многозначные поля в Solr - они позволяют хранить несколько значений для одного и того же поля. Проверьте это и это для более подробной информации. Кроме того, вы можете изменить тип поля, чтобы обеспечить токенизацию поля на -, чтобы каждое значение индексировалось отдельно.

Дайте мне знать, как именно вы создаете индекс и публикуете свой schema.xml. Затем я смогу дать вам более подробную информацию о добавлении многозначных полей в ваш индекс.

0 голосов
/ 17 марта 2011

Есть два варианта

  1. Запрос диапазона: fq = видимость: [1-15]
  2. ИЛИ условия: fq = видимость: 6 ИЛИ ИЛИ ИЛИ 8 (если вызнайте, что это только 3 допустимые значения в вашей системе)
...