Как сформировать запрос Endeca, где поле должно начинаться с определенных букв

Можно ли сформировать запрос Endeca для получения поля, которое должно начинаться с определенных букв? Например, получить всех пользователей, у которых первая буква A? Я проверил фильтры диапазона, но он поддерживает только числовые поля, а также поиск с подстановочными знаками. Но ничего хорошего пока не получалось.


person Ananth Duari    schedule 22.10.2012    source источник


Ответы (3)


Создание измерения — это один из способов решения проблемы, как упоминал Пол Лемке. а также неактуальные записи. Но мы решили это, используя пару других альтернатив.

  1. Создайте новое свойство для объекта с именем «StartWith», сохраните первую букву объекта и сделайте его доступным для поиска. Мы обнаружили, что это проще, чем создание Измерения.

Существует проблема, когда такие буквы, как «А», обычно являются стоп-словами в Endeca. Мы можем сделать вам пару работ, чтобы решить эту проблему.

  1. Получите значение ASCII первой буквы и сохраните числовое значение в этом свойстве. Еще одно преимущество этого подхода заключается в том, что мы можем использовать фильтры диапазона. Но вы не можете искать требования типа «AB».
  2. Добавьте несколько символов, например ^^^Мое имя, и найдите ^^^M. Преимущество этого подхода в том, что вы можете искать такие условия, как буквы, начинающиеся с AB.
person Ananth Duari    schedule 25.10.2012

Endeca в своей текущей версии (6.1) не имеет фильтра поиска, который работает как функция «начинается с» в других языках программирования.

У меня есть два варианта, которые могут приблизить вас:

  1. Если вы действительно ищете только первую букву, вы можете установить значение измерения для каждой буквы алфавита (A,B,C...). Затем вы можете уточнить каждую букву и увидеть только значения, которые начинаются с буквы A, B, C и т. д. Единственным недостатком этого является то, что вы можете фильтровать только на основе того, сколько значений измерения вы установили. Поэтому, если вы добавили «A», вы не смогли бы отфильтровать все, что начинается с «AB». Вы можете пойти дальше и добавить «AB», «BA, «CA» и так далее, но это очень быстро станет громоздким.

  2. Если вы хотите что-то более близкое к функции «начинается с», единственным другим вариантом является использование поиска с подстановочными знаками. В основном вы бы выполняли поиск недвижимости следующим образом: N=0&Ntk=Username&Ntt=ab*

    Трюк с поиском по подстановочным знакам заключается в том, что он будет делать это по нескольким словам в этом свойстве. Итак, если у вас есть набор данных этих значений:

    • Smithers Smith
    • Ларри Смит
    • Дженна-Смит

    Выполнение поиска sm* на самом деле вернет все 3 результата, потому что «sm» было в их фамилии. Даже тот, что с тире, вернется, поскольку Эндека считает, что это отдельное слово. (Возможно, это можно отключить, хотя, не уверен).

    Таким образом, в основном все сводится к следующему: вставьте одно слово в свойство, установите для этого свойства разрешение на поиск с использованием подстановочных знаков, затем сделайте «blah*» для этого свойства, и вы должны получить результаты, которые ищете.

person Paul Lemke    schedule 23.10.2012

Пробовали ли вы модуль первого ранга релевантности, который должен ранжироваться на основе близости к началу поля?

Это звучит похоже на то, что вы ищете, и вместе с подстановочным знаком может дать ожидаемые результаты.

person Wiszh    schedule 23.10.2012