2017-02-13 24 views
1

У нас есть приложение, которое токенизирует определенные данные. Проблема, которую я имею, заключается в том, что у меня есть поле с разделителями-запятыми, которое мне нужно для токенизации, но не для пробелов. Для примера:Lucene Tokenizer - Включить пробелы

"Age 6, Age 7, Age 8" 

Становится

Age 
6 
Age 
7 
Age 
8 

Мне нужно

Age 6 
Age 7 
Age 8 

Есть ли способ для меня, чтобы изменить поведение по умолчанию на только в определенных областях?

Настройка конфигурации У меня есть на данный момент:

<field fieldName="SizeGroup" storageType="YES" indexType="TOKENIZED" vectorType="NO" 
boost="1f" type="System.String" 
settingType="Sitecore.ContentSearch.LuceneProvider.LuceneSearchFieldConfiguration, 
Sitecore.ContentSearch.LuceneProvider" /> 
+0

Вам нужно будет указать анализатор в своем поле: https://community.sitecore.net/technical_blogs/b/getting_to_know_sitecore/posts/understanding-analyzers-and-sitecore-7 и, возможно, потребуется написать собственный анализатор/токенизатор .. – Gatogordo

ответ

0

К сожалению, я не знаю, C#, но я знаю Lucene. Поэтому для необходимого поведения вам нужно использовать PatternAnalyzer, что позволяет указать регулярное выражение, которое будет использоваться для токенизации. В вашем случае шаблон, подобный \\,, должен работать для разделения на запятую.