Сущность извлечения в Solr
Случай использования
Скажем, 2 документа были проиндексированы в Solr. И одно из полей - desc_s (строка), как показано ниже:
Док: Док1
Поле: desc_s
Стоимость: XYZ покупает ABC за 2,4 миллиарда долларов
Док: Док2
Поле: desc_s
Стоимость: DEF продает дом на 3,4 миллиарда долларов
Выход
Нам нужно извлечь объекты типа ABC,XYZ,PQR, а также идентифицировать сигнал покупки / продажи из desc_s и создать для него тег.
Новое поле создано - теги
теги(для Doc1) - ABC,XYZ (строка)
теги(для Doc2) - DEF(строка)
и создайте другое поле с именем "signal", которое будет иметь Buy/Sell как фасет
Signal
|
Buys
|
|___ABC
|___XYZ
Sells
|
|___DEF
Что я пробовал?
Для извлечения тегов ABC,XYZ,DEF - это нормально работает
Я добавил следующий анализатор (в schema.xml), чтобы идентифицировать теги и извлечь их в 1 поле.
<field name="tags" type="key_phrases" indexed="true" stored="false" multiValued="true"/>
<copyField source="desc_s" dest="key_phrases"/>
<fieldType name="key_phrases" class="solr.TextField" sortMissingLast="true" omitNorms="true">
<analyzer>
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.KeepWordFilterFactory"
words="tags.txt" ignoreCase="true"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
Теперь, здесь - tags.txt содержит все объекты (например, ABC,DEF,PQR,XYZ..etc), где анализатор будет искать и заполнять нужные объекты в поле тегов.
Следовал за этим для извлечения сущности
Нужны некоторые предложения / подход о том, как построить фасет купить / продать для того же. На данный момент, мы можем считать, что у desc_s будут только покупки / продажи в их тексте.