Я новичок в использовании cfcollection и cfsearch, но я дал ему преимущество, и оно, похоже, сработало. Затем я очистил коллекцию, и она стала работать. Затем я решил, что я удалю сбор и начну. Коллекция удалена отлично, но теперь тот же код не вернет никаких результатов.Коллекция ColdFusion/поиск не будет заполняться
Мой запрос возвращает 5 результатов, которые собирает коллекция и последующий поиск, но возвращаемый поиск пуст, даже когда я указываю подстановочный знак * в моих критериях.
Есть ли что-то не так с моим кодом ниже? Нет ошибок или чего-то еще, просто пустые результаты.
public void function ajax() {
param name="params.keywords" default="SoundCloud";
onlyProvides("json");
local.collectionPath = expandPath("./") & "collections/";
// Delete
/*
collection
action="delete"
collection="pincollection"
path="#local.collectionPath#";
*/
collection
action="list"
name="local.collectionList";
local.collectionList = valueList(collectionList.name);
if (! listFind(local.collectionList, "pincollection")) {
collection
action="create"
collection="pincollection"
engine="solr"
categories="yes"
path="#local.collectionPath#";
}
local.pins = model("pin").findAll(
include = "user",
order = "createdat DESC"
);
index
collection="pincollection"
action="update"
type="custom"
title="title"
body="description"
custom1="latitude"
custom2="longitude"
custom3="typeid"
custom4="createdAt"
custom5="updatedAt"
query="local.pins"
category="typeid"
key="id";
search
name="local.pinSearch"
collection="pincollection"
contextHighlightBegin="<strong>"
contextHighlightEnd="</strong>"
category="2,1"
maxrows="100"
criteria="•";
writeDump(var=local.pinSearch); // Empty search query.
writeDump(var=local.pins, abort=true); // Original query returns 5 results.
renderWith(data=local.pinSearch, layout=false);
}
Я использую Railo.
Я вижу, что в папке моих коллекций создана папка для моей коллекции, но это не содержит никаких файлов.
Я новичок в использовании ColdFusion/Railo для поиска. Кажется прямолинейным, но я в тупике.
Thanks, Mikey.
PS - Я использую CFWheels, следовательно, некоторые функции CFWheels. Их можно игнорировать.
Не ответ на ваш вопрос, но вы не должны индексировать данные каждый раз, когда вы хотите, чтобы сделать поиск. Индексирование должно выполняться как отдельный процесс - обычно, когда вы добавляете/обновляете/удаляете элементы из базы данных или добавляете/обновляете/удаляете документы из своей системы. Ваша коллекция должна быть создана ОДИН РАЗ, и при необходимости у вас должен быть отдельный процесс по ее восстановлению. –
@ScottStroz Спасибо. Итак, следует ли разместить это в том условии, что в данный момент находится «create»? Итак, если этого не существует, мы создаем, а затем заполняем его, иначе просто выполняем поиск как обычно? Звучит логично. Я новичок в этом. Однако пока ничего не найдено. –
Да, вы можете это сделать. Когда я использовал коллекции поиска, я уверен, что любые операции вставки/обновления/удаления также обновляют коллекцию. Кроме того, у меня есть процесс, который будет очищать коллекцию и reindex - внутри здесь я бы поставил чек, чтобы увидеть, существует ли коллекция, если нет, создать ее, а затем индексировать. –