cfindex сколько пользовательских полей мы можем иметь
В настоящее время я собираю функцию поиска для моего сайта, используя cfsearch. Мы используем CF 10, поэтому я считаю, что он работает на Solr.
В теге cfindex я вижу, что мы можем добавить некоторые настраиваемые поля, но из-за большого количества информации, которую должен искать наш поиск, мне интересно, как бы мы поступили, чтобы сделать дополнительные поля доступными как часть возвращаемого набора данных?
в настоящее время у нас есть custom1 - custom4, заполняемый несколькими полями из запроса к базе данных, но мы все еще требуем, чтобы дополнительные атрибуты были доступны пользователю или в шаблоне при запуске поиска.
Есть ли способ добавить более 4-х пользовательских полей в cfindex?
заранее спасибо
1 ответ
Adobe усовершенствовала реализацию Solr в ColdFusion 10, чтобы у нее больше не было ограничения настраиваемого поля с помощью cfindex
что предыдущие версии ColdFusion имели. А именно - custom1, custom2, custom3 и custom4. Как обычно, онлайновая документация по тегу была просто перенесена из предыдущей версии, поэтому это немного сбивает с толку.
См. Этот документ для получения дополнительной информации - Улучшения Solr в ColdFusion 10.
Из этой документации в разделе Хранение ваших пользовательских данных:
Вариации от ColdFusion 9
- ColdFusion 9 имел ограниченную поддержку пользовательских полей, а именно custom1, custom2, custom3 и custom4. В ColdFusion 10 настраиваемые поля являются динамическими.
- В ColdFusion 9 отображаются все настраиваемые поля. В ColdFusion 10 cfdump выдает только поля с данными {{}}. То есть, если вы указали только пользовательский 1 и пользовательский 2, отображаются только эти два поля.
Рассмотрим следующий код:
<cfsearch criteria='some_criteria and column_i: [ 10 - 20 ]'...>
Вот,
some_criteria
указывает на фильтрацию. Напримерcolumn_i: [ 10 - 20 ]
означает поиск всех предметов, значения которых находятся в диапазоне от 10 до 20.column_i
это настраиваемое поле, предоставляемое пользователем при индексации. Эта опция была доступна в ColdFusion 9, но ограничена четырьмя настраиваемыми полями. В ColdFusion 10 варианты не ограничены.В ColdFusion 10 вы можете отсортировать порядок, в котором должны быть возвращены результаты поиска.
Примечание. При поиске в коллекции Solr строки типа поля критерии должны быть в кавычках, например
criteria='string_s:"something missing"'
Чтобы указать настраиваемые поля, используйте следующий синтаксис:
<cfindex ... datefield_dt=#date1# column_i=#secondaryColumn# body=#primaryColumn# ....../>
Примечание. Пользовательские поля могут содержать только строчные буквы.
В коде _i обозначает целочисленные пользовательские данные, значение которых сохраняется и индексируется. Любое имя поля, оканчивающееся на _i, рассматривается как целое число Solr. Точно так же _s обозначает строку пользовательских данных.
Все поддерживаемые типы данных перечислены в schema.xml:
<dynamicfield name="*_i" type="sint" indexed="true" stored="true"/> <dynamicfield name="*_s" type="string" indexed="true" stored="true"/> <dynamicfield name="*_l" type="slong" indexed="true" stored="true"/> <dynamicfield name="*_t" type="text" indexed="true" stored="true"/> <dynamicfield name="*_b" type="boolean" indexed="true" stored="true"/> <dynamicfield name="*_f" type="sfloat" indexed="true" stored="true"/> <dynamicfield name="*_d" type="sdouble" indexed="true" stored="true"/> <dynamicfield name="*_dt" type="date" indexed="true" stored="true"/> <dynamicfield name="random*" type="random"/>
Замечания:
_dt
поддерживает только форматы даты, поддерживаемые ColdFusion.