2013-11-26 6 views
3

im, которые в настоящее время собирают функцию поиска для моего сайта с помощью cfsearch. Мы используем CF 10, поэтому я считаю, что он работает на Solr.cfindex, сколько пользовательских полей у нас есть

В теге cfindex можно увидеть, что мы можем добавить некоторые пользовательские поля, но из-за большого объема информации, которую наш поиск должен вернуть, им интересно, как мы будем делать дополнительные поля в качестве части возвращаемый набор данных?

В настоящее время у нас есть custom1 - custom4, заполняемое рядом полей из запроса базы данных, но мы по-прежнему требуем, чтобы дополнительные атрибуты были доступны пользователю или внутри шаблона при запуске поиска.

Есть ли способ добавить больше чем 4 настраиваемых полей в cfindex?

заранее спасибо

ответ

3

Adobe усовершенствовали с реализацией Solr в ColdFusion 10, так что он больше не имеет настраиваемое ограничение поля с cfindex, что предыдущие версии ColdFusion было. А именно - custom1, custom2, custom3 и custom4. Как обычно, online documentation for the tag был просто перенесен с предыдущей версии, так что это немного запутанно.

См. Этот документ для получения дополнительной информации - Solr enhancements in ColdFusion 10.
Из этой документации по Запоминанию пользовательских данных раздела:

Вариации из ColdFusion 9

  • ColdFusion 9 имело ограниченную поддержку пользовательских полей, а именно Custom1, Custom2, CUSTOM3 и Другое4. В 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.

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