Я строю небольшой класс в PHP, который общается с Apache SOLR и получает кешированный запрос данных.Это автономный скрипт, который будет вызываться вне Drupal.Данные - это запрос, связанный с типом content_type, определенным в Drupal 6.
Я сделал это изначально, определив вещи в коде ниже.Однако теперь я должен проиндексировать все через модуль Drupal ApacheSOLR.
Я хотел бы знать, как запросить SOLR для определенного запроса БЕЗ с использованием модуля Drupal SOLR.
Когда я делал это полностью вне Drupal, я создавал запись в data-config, найденную в каталоге solr / conf, следующим образом:
<document name="content">
<entity name="id"
query="SELECT e.nid, e.field_a, e.field_b, e.field_c, n.type AS content_type
FROM
content_type_myContentType e
LEFT JOIN
node n ON n.nid = e.nid
WHERE
n.status='1'">
<field column="nid" name="id" />
<field column="title" name="title" />
<field column="field_1" name="field_1" />
<field column="field_2" name="field_2" />
<field column="content_type" name="content_type" />
</entity>
</document>
И настраивал поляв schema.xml, вот так:
<uniqueKey>id</uniqueKey>
<field column="nid" name="id" type="int" indexed="true" stored="true" required="true"/>
<field column="field_a" name="field_a" type="text" indexed="true" stored="true"/>
<field column="field_b" name="field_b" type="text" indexed="true" stored="true"/>
<field column="field_c" name="field_c" type="float" indexed="true" stored="true"/>
<field column="content_type" name="content_type" type="text" indexed="true" stored="true"/>
<defaultSearchField>fulltext</defaultSearchField>
Однако теперь мы хотим, чтобы Drupal справился с этим, поэтому я настроил SOLR для взаимодействия с модулем apachesolr Drupal.Кажется, я выбираю поля, которые я хотел бы проиндексировать, на вкладке «Включить фильтры».
Теперь, если я нахожусь за пределами drupal и хочу запросить solr для всех результатов определенного типа контента, как мне это сделать?Ранее я бы назвал $ myConnection-> search ($ query), который по-прежнему подключается нормально, но возвращает пустые результаты.
Мой старый запрос будет выглядеть примерно так:
$query = 'content_type: my_content_type_name';
Это больше не работает, так как я не знаю, как Drupal / SOLR определяет мое индексированное поле как.Кроме того, как мне определить запрос?Могу ли я сделать это через data-config.xml, но разрешить Drupal отвечать за индексацию?