Поиск в Xpage

Тема в разделе "Lotus - Xpages", создана пользователем susinmn, 26 ноя 2010.

  1. susinmn

    susinmn Well-Known Member

    Регистрация:
    16 окт 2007
    Сообщения:
    530
    Симпатии:
    8
    Поделитесь, как у вас организован поиск во вью по частичному совпадению.
    Сделал поиск как здесь, а интересует именно поиск по частичному совпадению.

    XPages View Control - Add Full Text Search
    http://www-10.lotus.com/ldd/ddwiki.nsf/dx/...lTextSearch.htm

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

    NickProstoNick Статус как статус :)

    Регистрация:
    22 авг 2008
    Сообщения:
    1.766
    Симпатии:
    39
    эммм.... а что мешает использовать в поиске условие @Contains?
     
  3. susinmn

    susinmn Well-Known Member

    Регистрация:
    16 окт 2007
    Сообщения:
    530
    Симпатии:
    8
    мешает незнание, как использовать @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
     
  4. NickProstoNick

    NickProstoNick Статус как статус :)

    Регистрация:
    22 авг 2008
    Сообщения:
    1.766
    Симпатии:
    39
    Тю....
    Ну попробуй так

    Код (LotusScript):
    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
     
  5. susinmn

    susinmn Well-Known Member

    Регистрация:
    16 окт 2007
    Сообщения:
    530
    Симпатии:
    8
    так пробовал, - *Веб-узел не может отобразить страницу*(
     
  6. hosm

    hosm * so what *

    Регистрация:
    18 май 2009
    Сообщения:
    2.450
    Симпатии:
    7
    может " | " вместо Or ?
     
  7. susinmn

    susinmn Well-Known Member

    Регистрация:
    16 окт 2007
    Сообщения:
    530
    Симпатии:
    8

    неа, ошибка та же..
     
  8. hosm

    hosm * so what *

    Регистрация:
    18 май 2009
    Сообщения:
    2.450
    Симпатии:
    7
    а звездочка после значения, т.е. searchFIO+"\"*)", как в фт-поиске, в коде из Сообщение #3. так не покатит из-за кавычек?
     
  9. NickProstoNick

    NickProstoNick Статус как статус :)

    Регистрация:
    22 авг 2008
    Сообщения:
    1.766
    Симпатии:
    39
    OKEN точно
    Вот так будет работать. Перебор всех возможных совпадений по всем полям
    Код (LotusScript):
    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
    Правда с ридерс и авторс полями не получилось
     
  10. hosm

    hosm * so what *

    Регистрация:
    18 май 2009
    Сообщения:
    2.450
    Симпатии:
    7
    а что не получилось? что надо было получить, а что получили. ну, имена там измените, ессно, просто задачу опишите на примерах...
    ридерс-авторс - там или по аббревиатурной или по канонической искать надо, я вот не помню. (что-то мне кажется, что по аббревиатурной форме искало фт-поиском по БД - это без икспейджей, если что).
     
  11. susinmn

    susinmn Well-Known Member

    Регистрация:
    16 окт 2007
    Сообщения:
    530
    Симпатии:
    8
    NickProstoNick, OKEN, большое спасибо)
     
  12. NickProstoNick

    NickProstoNick Статус как статус :)

    Регистрация:
    22 авг 2008
    Сообщения:
    1.766
    Симпатии:
    39
    OKEN
    Да мне лично не надо :welcome: Это я пытаюсь помочь :)
    Человеку надо написать поиск по совпадению :) Я вот и предложил вариант
    Только такой поиск не работает с ридерс и авторс полями.
     
  13. hosm

    hosm * so what *

    Регистрация:
    18 май 2009
    Сообщения:
    2.450
    Симпатии:
    7
    я просто не поняла эту фразу, что имелось ввиду:
    он игнорирует права доступа к документам или просто не находит имена в ридерс-авторс-полях?
     
  14. NickProstoNick

    NickProstoNick Статус как статус :)

    Регистрация:
    22 авг 2008
    Сообщения:
    1.766
    Симпатии:
    39
    Не находит.
    Для ридерс-авторс полей нужен другой поиск
     
Загрузка...

Поделиться этой страницей