• 🔥 Бесплатный курс от Академии Кодебай: «Анализ защищенности веб-приложений»

    🛡 Научитесь находить и использовать уязвимости веб-приложений.
    🧠 Изучите SQLi, XSS, CSRF, IDOR и другие типовые атаки на практике.
    🧪 Погрузитесь в реальные лаборатории и взломайте свой первый сайт!
    🚀 Подходит новичкам — никаких сложных предварительных знаний не требуется.

    Доступ открыт прямо сейчас Записаться бесплатно

Поиск в Xpage

  • Автор темы Автор темы susinmn
  • Дата начала Дата начала
S

susinmn

Поделитесь, как у вас организован поиск во вью по частичному совпадению.
Сделал поиск как здесь, а интересует именно поиск по частичному совпадению.

XPages View Control - Add Full Text Search


Заранее, спасибо.
 
эммм.... а что мешает использовать в поиске условие @Contains?
 
эммм.... а что мешает использовать в поиске условие @Contains?

мешает незнание, как использовать @Contains вот в этой конструкции(

var tmpArray = new Array("");
var cTerms = 0;
if (sessionScope.searchFIO != null & sessionScope.searchFIO != "") {
tmpArray[cTerms++] = "(Field FirstName = \""+sessionScope.searchFIO+"\")";
tmpArray[cTerms++] = "(Field LastName = \""+sessionScope.searchFIO+"\")";
tmpArray[cTerms++] = "(Field MiddleName = \""+sessionScope.searchFIO+"\")"
}
qstring = tmpArray.join(" Or ").trim();
return qstring
 
Тю....
Ну попробуй так

Код:
var tmpArray = new Array("");
var cTerms = 0;
if (sessionScope.searchFIO != null & sessionScope.searchFIO != "") {

tmpArray[cTerms++] = "(@Contains( FirstName; \""+sessionScope.searchFIO+"\")";
tmpArray[cTerms++] = "(@Contains( LastName; \""+sessionScope.searchFIO+"\")";
tmpArray[cTerms++] = "(@Contains( MiddleName; \""+sessionScope.searchFIO+"\")"
}
qstring = tmpArray.join(" Or ").trim();
return qstring
 
Тю....
Ну попробуй так

Код:
var tmpArray = new Array("");
var cTerms = 0;
if (sessionScope.searchFIO != null & sessionScope.searchFIO != "") {

tmpArray[cTerms++] = "(@Contains( FirstName; \""+sessionScope.searchFIO+"\"))";
tmpArray[cTerms++] = "(@Contains( LastName; \""+sessionScope.searchFIO+"\"))";
tmpArray[cTerms++] = "(@Contains( MiddleName; \""+sessionScope.searchFIO+"\"))"
}
qstring = tmpArray.join(" Or ").trim();
return qstring

так пробовал, - *Веб-узел не может отобразить страницу*(
 
а звездочка после значения, т.е. searchFIO+"\"*)", как в фт-поиске, в коде из Сообщение #3. так не покатит из-за кавычек?
 
OKEN точно
Вот так будет работать. Перебор всех возможных совпадений по всем полям
Код:
var tmpArray = new Array("");
var cTerms = 0;
if (sessionScope.searchFIO != null & sessionScope.searchFIO != "") {
tmpArray[cTerms++] = '(Field FirstName = "*' + sessionScope.searchFIO + '*")';
tmpArray[cTerms++] = '(Field LastName = "*' + sessionScope.searchFIO + '*")';
tmpArray[cTerms++] = '(Field MiddleName = "*' + sessionScope.searchFIO + '*")';
}
qstring = tmpArray.join(" Or ").trim();
return qstring
Правда с ридерс и авторс полями не получилось
 
Правда с ридерс и авторс полями не получилось
а что не получилось? что надо было получить, а что получили. ну, имена там измените, ессно, просто задачу опишите на примерах...
ридерс-авторс - там или по аббревиатурной или по канонической искать надо, я вот не помню. (что-то мне кажется, что по аббревиатурной форме искало фт-поиском по БД - это без икспейджей, если что).
 
OKEN
Да мне лично не надо :welcome: Это я пытаюсь помочь :)
Человеку надо написать поиск по совпадению :) Я вот и предложил вариант
Только такой поиск не работает с ридерс и авторс полями.
 
Не находит.
Для ридерс-авторс полей нужен другой поиск
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab