Форум программистов, компьютерный форум, киберфорум
HCL Notes: Программирование
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.52/124: Рейтинг темы: голосов - 124, средняя оценка - 4.52
0 / 0 / 0
Регистрация: 03.02.2007
Сообщений: 821
1

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

07.10.2007, 14:38. Показов 23085. Ответов 17
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Раньше задавал этот вопрос............
Есть куча документов с полем , ..
в Этом поле много значений, "Республика", "Беларусь", "Республика Беларусь", "Беларусь Республика", "Республика моя Беларусь" и т.д. , вообщем куча вариантов

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

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

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

т.е. чтобы в коллекции первые доки были со значением где есть эти два слова (Республика и Беларусь), а все остальные доки с любым одним словом
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.10.2007, 14:38
Ответы с готовыми решениями:

Выборка по совпадениям
Код выборки: ЗапросШт = новый Запрос; ЗапросШт.Текст = "ВЫБРАТЬ ...

Группировка по совпадениям
Товарищи, а как сгруппировать по одинаковым фамилиям?

Выборка по неточным совпадениям
Переменная может принимать много значений: от #quadrate1-1 до #quadrate6-90, null и может быть...

Подсчет количества строк по совпадениям
Здравствуйте, ломаю голову над задачей Есть текст $text = " Вчера | 1 | 2 | 3 | Петя |...

17
0 / 0 / 0
Регистрация: 19.07.2007
Сообщений: 1,098
07.10.2007, 14:42 2
Так ведь отвечали уже... Сортируй свою коллекцию потом так, как тебе хочется... :D
0
1 / 1 / 0
Регистрация: 04.08.2006
Сообщений: 2,950
07.10.2007, 14:44 3
Для: wowa
РУКАМИ, и вообще зачем спрашивать каждый раз одно и тоже! ?
0
0 / 0 / 0
Регистрация: 04.12.2004
Сообщений: 3,329
07.10.2007, 14:48 4
Сделать два поиска. Получить две коллекции.
0
0 / 0 / 0
Регистрация: 03.02.2007
Сообщений: 821
07.10.2007, 15:01 5
Для: Medevic
Т.е. сделать сначала коллекцию где строка запроса содержит and, а потом OR ????
stSearch = "Беларусь* or Республика*"
0
0 / 0 / 0
Регистрация: 04.12.2004
Сообщений: 3,329
07.10.2007, 15:03 6
Для: wowa
Ага. Во второй коллекции пропускать документы, которые есть в первой. :D
0
0 / 0 / 0
Регистрация: 23.10.2006
Сообщений: 218
07.10.2007, 15:04 7
Абажите! Давайте подумаем. Для этого обратимся к документаци :D.



TERMWEIGHT
termweight

This gives importance, or "weight," to search words. You can use any value from 0 through 65537 to assign weight.
Example: TERMWEIGHT 25 photo or TERMWEIGHT 75 audio or TERMWEIGHT 50 video finds documents containing at least one of the words. Audio is most important, video is next, and photo is least important. Notes ranks results accordingly. You need an AND or OR between first TERMWEIGHT and subsequent ones.
А если построить запрос таким обпазом: TERMWEIGHT 50 "Республик* Беларус*" OR TERMWEIGHT 25 "Республик*" OR TERMWEIGHT 25 "Республик*"?
0
0 / 0 / 0
Регистрация: 19.07.2007
Сообщений: 1,098
07.10.2007, 15:13 8
тада уже не TERMWEIGHT 50 "Республик* Беларус*" , а TERMWEIGHT 50 "Республика Беларусь"

А то он выберет тебе еще и "Рестпублика Боливия - это вам не Беларусь" :D
0
0 / 0 / 0
Регистрация: 03.02.2007
Сообщений: 821
07.10.2007, 15:17 9
<!--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 "Республик*"" ???
0
0 / 0 / 0
Регистрация: 23.10.2006
Сообщений: 218
07.10.2007, 15:21 10
Сань, я ко всему отношусь как можно проще и не пложу лишних сущностей :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]
Что надо-то? Найти доки со словами "республика" или "Белорусь"? Или найти доки, в которых в конкретных итемах есть "республика" и "Беларусь"? В описании проблемы ни слова нету о итемах или полях, между прочим.
0
0 / 0 / 0
Регистрация: 03.02.2007
Сообщений: 821
07.10.2007, 15:27 11
<!--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]
По полю конкретному... Сорри за неполное высказывание проблемы..
0
0 / 0 / 0
Регистрация: 23.10.2006
Сообщений: 218
07.10.2007, 15:39 12
(TERMWEIGHT 50 "Республик* Беларус*" AND [Memo]="Республик* Беларус*") OR (TERMWEIGHT 25 "Республик*" AND [Memo]="Республик*") OR (TERMWEIGHT 25 "Беларус*" AND [Memo]="Беларус*")

Попробуйте! А потом раскажите как получилось. Самомо интересно!
0
0 / 0 / 0
Регистрация: 03.02.2007
Сообщений: 821
07.10.2007, 16:46 13
Для: Mihal
Круто, почти работает
"Беларусь " заносит вниз, а "Республика Беларусь" и "Республика" перемешивает ... где-то надо OR на AND заменить или наоборот


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


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


Добавил скобочки и заработало (выделил какие)
0
0 / 0 / 0
Регистрация: 03.02.2007
Сообщений: 821
07.10.2007, 17:00 14
хотя непонятно, то оно все нормально делает, то опять "Республика" и "Республика Беларусь" перемешивает... а "Беларусь" все нормально, - в конце
0
0 / 0 / 0
Регистрация: 23.10.2006
Сообщений: 218
07.10.2007, 17:49 15
<!--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. Гы-гы. Хотя, опять же, в документации есть следующее:


The collection of documents that match the full-text query are sorted by relevance with highest relevance first. You can access the relevance score of each document in the collection using the FTSearchScore property in NotesDocument.
В общем, надо поэксперементировать. Убедится правильно ли сортирует по релевантности в принципе. Для этого запрос надо в поиск по вьюхе загнать. Потом переходить к колекции. на крайняк отсортировать собственоручно опираясь на FTSearchScore.

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

P.S. Интуиция подсказывает, что достаточно будет разноса "Республика Беларусь" по двум разным условиям с AND.
P.P.S. А я родился в городе Калинковичи Гомельской области! ;)
0
0 / 0 / 0
Регистрация: 23.10.2006
Сообщений: 218
07.10.2007, 17:59 16
Да! Вот эти дополнительный скопки меня смущают. Вряд ли в них дело.
0
0 / 0 / 0
Регистрация: 03.02.2007
Сообщений: 821
07.10.2007, 20:39 17
Да, дело не в скобках.....Поизменял 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]
А что за документация?? В хелпе я что-то не нашел..
0
0 / 0 / 0
Регистрация: 23.10.2006
Сообщений: 218
07.10.2007, 23:28 18
<!--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)
0
07.10.2007, 23:28
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.10.2007, 23:28
Помогаю со студенческими работами здесь

Поиск в текстовом файле по совпадениям символов
Доброго времени суток) Нужно сделать поиск в текстовом файле по совпадениям символов. То есть на...

Поиск номера строки по совпадениям в 2 столбцах
Лучше всего объяснить на примере. Есть таблица: |A|B 1|1|11 2|1|12 3|2|11 4|2|12 5|2|13...

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

Коллекция
Как добавить элемент(элементы) в начало коллекции?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru