Назад | Перейти на главную страницу

Не получение желаемых результатов от фасетов Solr

Я работаю над добавлением аспектов к моим запросам Solr и получаю странные результаты.

Допустим, у меня есть список производителей, которых я хочу проанализировать. Этот список будет включать:

Администрация порта
Carhartt Одежда
Dickies Униформа

Мои аспекты для этого возвращаются как:

<int name="port">157</int>
<int name="authority">156</int>
<int name="clothing">156</int>
<int name="carhartt">105</int>
<int name="uniforms">67</int>
<int name="dickies">58</int>

Есть ли способ заставить фасеты использовать полное значение, а не разбивать каждое слово? Я определил производителя в моем файле schema.xml как:

<field name="manufacturer" type="text_general" indexed="true" stored="true" multiValued="false"/>

У меня в основном есть файл schema.xml по умолчанию, который находится в каталоге примеров, когда вы загружаете Solr. Единственное, что я изменил по сравнению с примером по умолчанию, - это добавление полей.

Один из простых способов сделать это - скопировать данные в определенное поле фасета. Обычно вы не хотите токенизации или каких-либо других изменений в поле фасета.

Например, у вас solr schema.xml вы можете сделать

<copyField source="manufacturer" dest="manufacturerFacet"/>

Это автоматически скопирует данные, которые вы пытаетесь сохранить в поле производителя, в ManufacturerFacet. Таким образом, вы можете установить поле ManufacturerFacet следующим образом, используя строку в качестве базового стандартного типа без токенизации.

<field name="manufacturerFacet" type="string" indexed="true" stored="false" multiValued="true"/>
<fieldType name="string" class="solr.StrField" sortMissingLast="true" omitNorms="true"/>