результаты поиска solr возвращают многозначное поле в виде одной строки при выделении

У меня есть многозначное поле, в котором я ищу. В области результатов поле возвращается в виде массива строк. В разделе выделения элементы массива объединяются в одну строку без разделителя. Должен ли я анализировать выделение на основе раздела результатов? Кажется, что подсветка должна возвращать массив строк.

Вот что я возвращаю:

<result name="response" numFound="1" start="0">
    <doc>
        <arr name="NameList">
            <str>Beacher, Mike</str>
            <str>Cally, Karl T.</str>
            <str>Amerson, Judy</str>
        </arr>
    </doc>
</result>
<lst name="highlighting">
    <lst name="my_doc">
        <arr name="NameList">
            <str>Beacher, MikeCally, Karl T.<em>Amerson, Judy</em>
            </str>
        </arr>
    </lst>
</lst>

Я ожидал, что результат выделения будет выглядеть примерно так:

<arr name="NameList">
    <str>Beacher, Mike</str>
    <str>Cally, Karl T.</str>
    <str><em>Amerson, Judy</em></str>
</arr>

Пока я не нашел никаких вопросов по этому поводу - если только я плохо ищу. :)


person Kimber    schedule 12.12.2012    source источник


Ответы (1)


Решил это.

Эта функция теперь доступна с использованием параметра preserveMulti в Solr 4.1.

Обсуждено здесь

person techfoobar    schedule 06.05.2013
comment
Хм, кажется, это не работает для меня. Когда я включаю его, я все равно возвращаю одно значение. Мне очень нужен список, который нужно вернуть. В документации сказано, что preserveMulti просто поддерживает порядок. Ничего не говорится о том, является ли результат списком или строкой. - person mlissner; 06.04.2016
comment
Не могу вспомнить подробности, так как я опубликовал этот ответ довольно давно (фактически за месяц до 3 лет). Версия Solr теперь 5.5.0 — если вы посмотрите последнюю документацию, я думаю, вы сможете найти способ получить необходимую функциональность. - person techfoobar; 07.04.2016
comment
Если бы я мог. Обновление — это большой проект, в котором мы пока не нуждались. Все же. - person mlissner; 07.04.2016
comment
Похоже, этот работает только со стандартным маркером, но не с FastVectorHighlighter: Параметр работает со стандартным маркером по умолчанию и следует стандартным соглашениям о выделении. - person mlissner; 10.02.2017
comment
пожалуйста, используйте f.cat.hl.preserveMulti=true, чтобы выделить конкретное многозначное поле. - person Vivek Agrawal; 03.03.2020