Вопрос

У меня проблема с полостью препинания от индекса SolR, когда знак пунктуации следует сразу после слова, то это слово не проиндексируется должным образом.

Например: если мы индексируем «Hello, John», актив не будет найден к ключевому слову «Hello», пока не будет никакой проблемы, если мы удалим запятую после слова «Hello».

Есть ли фальсификатор, которые предполагают полосу препинания? Есть идеи?

Спасибо, Богдан.

Нет правильного решения

Другие советы

Вы можете использовать solr.PatternReplaceFilterFactory Чтобы положить начало и затяжной пунктуацию с этим:

<filter class="solr.PatternReplaceFilterFactory"
    pattern="^\p{Punct}*(.*?)\p{Punct}*$"
    replacement="$1"/>

И если вы хотите прокрутить всю пунктуацию в начале и заканчиваться, кроме как (например) долларовой знак перед ним, вы можете использовать это:

<filter class="solr.PatternReplaceFilterFactory"
    pattern="^[\p{Punct}&&[^$]]*(.*?)\p{Punct}*$"
    replacement="$1"/>

Это делается со словомДелимитерфлтерторией. Установить GenerateWordParts = 1.

Есть также PatternTokedizerFactory. Это можно было бы использовать, но я никогда не пробовал.

Используйте PatternreplaceFilterFactory

<!-- remove punctuation -->
    <filter class="solr.PatternReplaceFilterFactory" pattern="^(\p{Punct}*)(.*?)(\p{Punct}*)$" replacement="$2"/>
    <filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.StandardFilterFactory"/>
    <filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
  </analyzer>

...

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top