Solr Поиск многозначных полей - PullRequest
0 голосов
/ 21 сентября 2011

У меня есть многозначное поле, которое выглядит так:

<arr name="some_name">
   <str>a-value-1 a-value-2 ....a-value-n</str>
   <str>b-value-1 b-value-2 ....b-value-m</str>
</arr>

где n и m могут быть произвольно большими (предположим, что значения в каждом <str> взяты из абзаца на странице или что-то в этом роде).

Как мне выполнить поиск, чтобы результат содержал только те документы, в которых все параметры поиска содержатся в одной и той же сущности <str> (то есть без создания ложных срабатываний)?

Например, если документ A имеет это:

<arr name="some_name">
  <str>london foo-1 foo-2 ...foo-k 2012 foo-k+1 foo-k+2 ...foo-k+n</str>
  <str>beijing bar-1 bar-2 ....bar-j 2008 bar-j+1 bar-j+2 ....bar-j+m</str>
</arr>

Каким будет запрос, который не включит документ A в результат поиска слов london AND 2008?

Если бы я попробовал что-то подобное some_name:("london AND 2008"~n), я не знаю, каково было бы значение n.

1 Ответ

0 голосов
/ 22 сентября 2011

Рассмотрите возможность использования high positionIncrementGap, который поможет разделить многозначные токены и перекрестное сопоставление между различными многозначными записями. Однако даже это не будет надежным решением.

...