2016-01-14 7 views
0

Это у меня в Solr схемы файлразница Solr между '<' и <

<tokenizer class="solr.PatternTokenizerFactory" pattern="[\s\?\!\:\;\,\(\)\\\*\'#\$%\-\/\=\@\[\]\^\_\{\}\|\~&quot;&lt;&gt;]"/> 

Solr хорошо играть с отключающей такой текст

Hello&lt;World&lt;! 

Но терпит неудачу с этим

Hello<World>! 

Нет результатов с запросом World, но много с <World>

Как я могу переписать шаблон для разрыва на символе <?

Стараюсь CDATA, но он не работает

<tokenizer class="solr.PatternTokenizerFactory" pattern="[\s\?\!\:\;\,\(\)\\\*\'#\$%\-\/\=\@\[\]\^\_\{\}\|\~]|(&quot;|&lt;|&gt;|[CDATA[<]])"/> 

и немного измененный шаблон

<tokenizer class="solr.PatternTokenizerFactory" pattern="[\s\?\!\:\;\,\(\)\\\*\'#\$%\-\/\=\@\[\]\^\_\{\}\|\~]|(&quot;|&lt;|&gt;)"/> 

же не работает для меня

UPDATE

Решение

pattern="[\s\?\!\:\;\,\(\)\\\*\.#\$%\-\/\=\@\[\]\^\_\{\}\|\~&quot;&lt;&gt;«»]|(&amp;lt;)|(&amp;gt;)" 

Также работает без изменить свой первый поворот рисунка на HTML фильтра в схеме, которая превращающего &lt; к < и Solr разбирает <

<charFilter class="solr.HTMLStripCharFilterFactory"/> 

ответ

1

Ваш вопрос о solr.PatternTokenizerFactory. Вы хотите разбить на '<'. Это вопрос о том, как избежать «<» в xml.

Ваш первый подход является правильным

<tokenizer class="solr.PatternTokenizerFactory" pattern="[\s\?\!\:\;\,\(\)\\\*\'#\$%\-\/\=\@\[\]\^\_\{\}\|\~&quot;&lt;&gt;]"/> 

как вы можете прочитать ее: Which are the HTML, and XML, special characters?

поэтому, пожалуйста, поиск вашей проблемы с

Hello&lt;World&lt;! 

через analysis screen.

+0

анализ экрана ужасный – theodor

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