Мы используем Endeca для извлечения записей, так как они огромны. У нас есть dataTable на frontend, который отображает записи, полученные из Endeca через запрос Endeca. Теперь, когда мы фильтруем результаты на основе значений флажка во фронте, запрос добавляет атрибут Nrs и получает отфильтрованные результаты. Для любых китайских или русских или специальных символов мы кодируем их и создаем запрос. Пример:Nrs в запросе Endeca не извлекает результаты, когда мы даем закодированное значение вместе с английским символом в url
N = 0 & НКА = Весь & NTX = режим + matchall & Ntt = Румтеки & NRS = коллекция()/запись [(CustomerName = "% 22RUMTEK% 22 + ЛТД")] & Нет = 0 & Ns = , Endeca.stratify (collection()/record [not% 20 (invoiceDate)]) || invoiceDate | 1 ||, Endeca.stratify (collection()/record [not% 20 (invoiceNumber)]) || invoiceNumber | 1
В приведенном выше запросе результаты выбираются на основе значения «rumtek», и мы применяем фильтр, задавая значение как «ООО« РУМТЕК ».». После кодирования значение фильтра преобразуется в «% 22RUMTEK% 22 + LTD.». Этот запрос не получает результата.
Результаты получены, когда мы либо даем полный закодированный термин (например, для любого китайского слова, которое мы даем закодированное значение), либо любое английское слово. Результаты не принимаются, если выставлять термины, содержащие двойные кавычки («), например,« ABC »LTD. Или AB & C (AB% 26C).
Еще одна проблема: - что, если мы сделали AB как Stop word (слова что не будет искать). Если мы ищем AB & с, то он будет искать результаты для AB & C или мир сделать весь термин как стоп-слова.
Любое предложение будет оценено.
Спасибо заранее.
Опишите ваши проиндексированные данные (в частности, поле customerName) немного больше. Почему вы хотите отфильтровать результаты с именем клиента «RUMTEK» LTD », а не просто« RUMTEK LTD »(т. Е. Без дополнительных кавычек)? У вас есть записи с клиентом Имя «RUMTEK« LTD »? Получаете ли вы результаты, когда вы используете customerName = «RUMTEK + LTD» в параметре Nrs (т. Е. Без котировок с URL-кодированием)? У вас есть двойная кавычка, отмеченная знаком поиска в студии разработчиков? – chairbender
@chairbender, у нас есть данные с дополнительными двойными кавычками, предоставленными нашим клиентом. Мы не получаем результаты с «RUMTEK + LTD», так как у нас нет таких данных, и запрос предназначен для точного поиска.Мы фильтруем каждый столбец вместе с текстовым полем для фильтрации. Фильтрация в текстовом поле, мы преобразуем текст в поиск по диким картам, например, «* RUMTEK * + * LTD *», используя endeca: совпадения в нашем запросе. Это дает нам правильный результат. – zenith
Чтобы исправить вышеуказанный комментарий, мы преобразуем текст в * RUMTEK * + * LTD *. Нужно ли добавлять escape-символ в endeca для чтения специальных символов (% и «). Спасибо за ваш интерес @chairbender, любая помощь приветствуется. – zenith