• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Поиск в Xpage

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

susinmn

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

XPages View Control - Add Full Text Search


Заранее, спасибо.
 

NickProstoNick

Статус как статус :)
Lotus Team
22.08.2008
1 851
27
BIT
0
эммм.... а что мешает использовать в поиске условие @Contains?
 
S

susinmn

эммм.... а что мешает использовать в поиске условие @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
 

NickProstoNick

Статус как статус :)
Lotus Team
22.08.2008
1 851
27
BIT
0
Тю....
Ну попробуй так

Код:
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
 
S

susinmn

Тю....
Ну попробуй так

Код:
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

так пробовал, - *Веб-узел не может отобразить страницу*(
 
H

hosm

а звездочка после значения, т.е. searchFIO+"\"*)", как в фт-поиске, в коде из Сообщение #3. так не покатит из-за кавычек?
 

NickProstoNick

Статус как статус :)
Lotus Team
22.08.2008
1 851
27
BIT
0
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
Правда с ридерс и авторс полями не получилось
 
H

hosm

Правда с ридерс и авторс полями не получилось
а что не получилось? что надо было получить, а что получили. ну, имена там измените, ессно, просто задачу опишите на примерах...
ридерс-авторс - там или по аббревиатурной или по канонической искать надо, я вот не помню. (что-то мне кажется, что по аббревиатурной форме искало фт-поиском по БД - это без икспейджей, если что).
 

NickProstoNick

Статус как статус :)
Lotus Team
22.08.2008
1 851
27
BIT
0
OKEN
Да мне лично не надо :welcome: Это я пытаюсь помочь :)
Человеку надо написать поиск по совпадению :) Я вот и предложил вариант
Только такой поиск не работает с ридерс и авторс полями.
 

NickProstoNick

Статус как статус :)
Lotus Team
22.08.2008
1 851
27
BIT
0
Не находит.
Для ридерс-авторс полей нужен другой поиск
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!