Коллекция по совпадениям

Тема в разделе "Lotus - Программирование", создана пользователем wowa, 8 окт 2007.

  1. wowa

    wowa Well-Known Member

    Регистрация:
    1 фев 2007
    Сообщения:
    842
    Симпатии:
    0
    Раньше задавал этот вопрос............
    Есть куча документов с полем , ..
    в Этом поле много значений, "Республика", "Беларусь", "Республика Беларусь", "Беларусь Республика", "Республика моя Беларусь" и т.д. , вообщем куча вариантов

    В строке поиска, делаю запрос, найти "Республика Беларусь"
    stSearch = "Беларусь* or Республика*" (или эту строку надо как-то переделать)

    КАк мне сделать запрос, чтобы получилась коллекция по совпадениям

    Set dcCollection = db.FTSearch( stSearch , 0, FT_SCORES) ????????

    т.е. чтобы в коллекции первые доки были со значением где есть эти два слова (Республика и Беларусь), а все остальные доки с любым одним словом
     
  2. Sandr

    Sandr Гость

    Так ведь отвечали уже... Сортируй свою коллекцию потом так, как тебе хочется... :D
     
  3. morpheus

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    Для: wowa
    РУКАМИ, и вообще зачем спрашивать каждый раз одно и тоже! ?
     
  4. Medevic

    Medevic Что это ? :)
    Lotus team

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Сделать два поиска. Получить две коллекции.
     
  5. wowa

    wowa Well-Known Member

    Регистрация:
    1 фев 2007
    Сообщения:
    842
    Симпатии:
    0
    Для: Medevic
    Т.е. сделать сначала коллекцию где строка запроса содержит and, а потом OR ????
    stSearch = "Беларусь* or Республика*"
     
  6. Medevic

    Medevic Что это ? :)
    Lotus team

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Для: wowa
    Ага. Во второй коллекции пропускать документы, которые есть в первой. :D
     
  7. Mihal

    Mihal Гость

    Абажите! Давайте подумаем. Для этого обратимся к документаци :D.

    А если построить запрос таким обпазом: TERMWEIGHT 50 "Республик* Беларус*" OR TERMWEIGHT 25 "Республик*" OR TERMWEIGHT 25 "Республик*"?
     
  8. Sandr

    Sandr Гость

    тада уже не TERMWEIGHT 50 "Республик* Беларус*" , а TERMWEIGHT 50 "Республика Беларусь"

    А то он выберет тебе еще и "Рестпублика Боливия - это вам не Беларусь" :D
     
  9. wowa

    wowa Well-Known Member

    Регистрация:
    1 фев 2007
    Сообщения:
    842
    Симпатии:
    0
    <!--QuoteBegin-Medevic+8:10:2007, 13:50 -->
    <span class="vbquote">(Medevic @ 8:10:2007, 13:50 )</span><!--QuoteEBegin-->Ага. Во второй коллекции пропускать документы, которые есть в первой.
    [snapback]80972" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    А если в строке запроса 3 слова,.... то документы имеющие значения поля в одно и два совпадающих слова будут перемешиваться


    <!--QuoteBegin-Mihal+8:10:2007, 13:51 -->
    <span class="vbquote">(Mihal @ 8:10:2007, 13:51 )</span><!--QuoteEBegin-->А если построить запрос таким обпазом: TERMWEIGHT 50 "Республик* Беларус*" OR TERMWEIGHT 25 "Республик*" OR TERMWEIGHT 25 "Республик*"?
    [snapback]80973" rel="nofollow" target="_blank[/snapback]​
    [/quote]

    Вот тут я что-то не совсем понял....
    stSearch = "FIELD имя_поля = "TERMWEIGHT 50 "Республик* Беларус*" OR TERMWEIGHT 25 "Республик*" OR TERMWEIGHT 25 "Республик*"" ???
     
  10. Mihal

    Mihal Гость

    Сань, я ко всему отношусь как можно проще и не пложу лишних сущностей :p .
    Если гаписано
    , значит так и делаем без всяких додумываний :D.


    <!--QuoteBegin-wowa+8:10:2007, 14:04 -->
    <span class="vbquote">(wowa @ 8:10:2007, 14:04 )</span><!--QuoteEBegin-->Вот тут я что-то не совсем понял....
    stSearch = FIELD имя_поля = "TERMWEIGHT 50 "Республик* Беларус*" OR TERMWEIGHT 25 "Республик*" OR TERMWEIGHT 25 "Республик*"" ???
    [snapback]80975" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    Что надо-то? Найти доки со словами "республика" или "Белорусь"? Или найти доки, в которых в конкретных итемах есть "республика" и "Беларусь"? В описании проблемы ни слова нету о итемах или полях, между прочим.
     
  11. wowa

    wowa Well-Known Member

    Регистрация:
    1 фев 2007
    Сообщения:
    842
    Симпатии:
    0
    <!--QuoteBegin-wowa+8:10:2007, 13:25 -->
    <span class="vbquote">(wowa @ 8:10:2007, 13:25 )</span><!--QuoteEBegin-->Есть куча документов с полем , ..
    в Этом поле много значений, "Республика
    [snapback]80963" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    По полю конкретному... Сорри за неполное высказывание проблемы..
     
  12. Mihal

    Mihal Гость

    (TERMWEIGHT 50 "Республик* Беларус*" AND [Memo]="Республик* Беларус*") OR (TERMWEIGHT 25 "Республик*" AND [Memo]="Республик*") OR (TERMWEIGHT 25 "Беларус*" AND [Memo]="Беларус*")

    Попробуйте! А потом раскажите как получилось. Самомо интересно!
     
  13. wowa

    wowa Well-Known Member

    Регистрация:
    1 фев 2007
    Сообщения:
    842
    Симпатии:
    0
    Для: Mihal
    Круто, почти работает
    "Беларусь " заносит вниз, а "Республика Беларусь" и "Республика" перемешивает ... где-то надо OR на AND заменить или наоборот


    Для: Mihal
    Большое спасибо, сам бы не дадумался
    Для FTSearch


    (TERMWEIGHT 50 ""Республика Беларусь"" AND FIELD имя_поля=""Республика Беларусь"") OR ( (TERMWEIGHT 25 ""Республика"" AND имя_поля=""Республика"") or (TERMWEIGHT 25 ""Беларусь"" AND FIELD имя_поля=""Беларусь"") )


    Добавил скобочки и заработало (выделил какие)
     
  14. wowa

    wowa Well-Known Member

    Регистрация:
    1 фев 2007
    Сообщения:
    842
    Симпатии:
    0
    хотя непонятно, то оно все нормально делает, то опять "Республика" и "Республика Беларусь" перемешивает... а "Беларусь" все нормально, - в конце
     
  15. Mihal

    Mihal Гость

    <!--QuoteBegin-wowa+8:10:2007, 15:47 -->
    <span class="vbquote">(wowa @ 8:10:2007, 15:47 )</span><!--QuoteEBegin-->хотя непонятно, то оно все нормально делает, то опять "Республика" и "Республика Беларусь" перемешивает... а "Беларусь" все нормально, - в конце
    [snapback]80990" rel="nofollow" target="_blank[/snapback]​
    [/quote]

    А если первым вхождением сделать так:
    TERMWEIGHT 50 ""Республика Беларусь"" AND FIELD имя_поля=""Беларусь"" AND FIELD имя_поля=""Республика ""
    ?

    Там же ещё всякие фази сёрчи ещё могут влиять.

    Ой блин! На выходе ж получаем NotesDOcumentCollection :D. А там порядок документов определяется трансциндентным образом :p. Гы-гы. Хотя, опять же, в документации есть следующее:
    В общем, надо поэксперементировать. Убедится правильно ли сортирует по релевантности в принципе. Для этого запрос надо в поиск по вьюхе загнать. Потом переходить к колекции. на крайняк отсортировать собственоручно опираясь на FTSearchScore.

    Дорогу осилит идущий!

    P.S. Интуиция подсказывает, что достаточно будет разноса "Республика Беларусь" по двум разным условиям с AND.
    P.P.S. А я родился в городе Калинковичи Гомельской области! ;)
     
  16. Mihal

    Mihal Гость

    Да! Вот эти дополнительный скопки меня смущают. Вряд ли в них дело.
     
  17. wowa

    wowa Well-Known Member

    Регистрация:
    1 фев 2007
    Сообщения:
    842
    Симпатии:
    0
    Да, дело не в скобках.....Поизменял TERMWEIGHT , вроде как-то лучше стало работать

    <!--QuoteBegin-Mihal+8:10:2007, 13:51 -->
    <span class="vbquote">(Mihal @ 8:10:2007, 13:51 )</span><!--QuoteEBegin-->Для этого обратимся к документаци
    [snapback]80973" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    А что за документация?? В хелпе я что-то не нашел..
     
  18. Mihal

    Mihal Гость

    <!--QuoteBegin-wowa+8:10:2007, 19:26 -->
    <span class="vbquote">(wowa @ 8:10:2007, 19:26 )</span><!--QuoteEBegin-->А что за документация?? В хелпе я что-то не нашел..
    [snapback]81024" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    Метод FTSearch класса NotesDatabase B)
     
Загрузка...

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