|
8.2 Полнотекстовый поиск | ☑ | ||
---|---|---|---|---|
0
The_SpecialOne
23.12.13
✎
18:54
|
Здравствуйте,
Столкнулся с довольно интересной ситуацией при использовании полнотекстового поиска. Итак вводные: платформа 8.2.14.540, база серверная, конфигурация базы состоит из 1 справочника "Номенклатура" (без реквизитов и таб. частей), в этом справочнике есть 1 элемент с наименованием "Искомый товар". Обновляю индекс полнотекстового поиска. Дальше последовательность действий: Задаю строку поиска "ско*" -> Результат: <Пусто> Задаю строку поиска "ком*" -> Результат: <Пусто> Задаю строку поиска "иско*" -> Результат: "Искомый товар" Задаю строку поиска "ско*" -> Результат: "Искомый товар" Задаю строку поиска "ком*" -> Результат: "Искомый товар" Получается, что полнотекстовый поиск по вхождению подстроки начинает работать только после того, как этот элемент будет найден по более полному условию Хотелось бы услышать компетентное мнение на причины такого вот результата :) Собственно, задача в том, чтобы полнотекстовый поиск искал сразу по вхождению подстроки, а не после проведения манипуляций p.s.: про запросы с ПОДОБНО я прекрасно осведомлен, хочется разобраться именно с полнотекстовым поиском |
|||
1
kiruha
23.12.13
✎
19:05
|
СлишкомМногоРезультатов()
Возвращаемое значение: Тип: Булево. Истина - во время поиска по соображениям производительности было произведено усечение количества результатов, что может сказаться на точности поиска (не все объекты будут найдены |
|||
2
The_SpecialOne
23.12.13
✎
19:08
|
(1) это сюда каким боком?
Я же говорю в конфигурации 1 справочник, в нем 1 элемент. Неужто это предполагает "СлишкомМногоРезультатов()" |
|||
3
France
23.12.13
✎
19:14
|
(0) сегодня тоже был оконфужен сходным результатом при обучении..
|
|||
4
kiruha
24.12.13
✎
13:01
|
А поиск по "тов" что дает ?
После обновления индекса |
|||
5
Cube
24.12.13
✎
13:06
|
(0) Не верю.
|
|||
6
kiruha
24.12.13
✎
13:10
|
Читаю доку по SQL вообще не вижу поиска по суффиксным выражениям типа *ско
Есть 1) Поиск по префиксному выражению 2) Поиск синтаксических форм слов 3) Поиск выражения с учетом расположения 4) Поиск с учетом веса слов 5) Комбинированный режим поиска Где суффиксный ? |
|||
7
Cube
24.12.13
✎
13:12
|
(6) А при чем здесь SQL вообще?
СП: МенеджерПолнотекстовогоПоиска.СоздатьСписок (FullTextSearchManager.CreateList) МенеджерПолнотекстовогоПоиска (FullTextSearchManager) СоздатьСписок (CreateList) Синтаксис: СоздатьСписок(<СтрокаПоиска>, <РазмерПорции>) Параметры: <СтрокаПоиска> (необязательный) Тип: Строка. Строка для поиска в реквизитах данных (содержит как слова, которые нужно найти, так и поисковые операторы - И, ИЛИ, НЕ, РЯДОМ, скобки, кавычки). Поиск может осуществляться по нескольким словам, с использованием поисковых операторов и поиском по точной фразе. В строке ввода допускается использование следующих поисковых операторов: И (AND или #) - поиск данных, содержащих все слова; пример: "запись И документ" - в реквизитах должны быть и "проведение" и "документ" (с учетом морфологии); ИЛИ (OR или | или ,) - поиск хотя бы одного слова из перечисленных; пример: "запись ИЛИ документ" - в реквизитах должно быть хотя бы одно из слов "запись" или "документ"; НЕ (NOT или ~) - поиск данных, в реквизитах которых есть первое слово, но нет второго; пример: "закрытие НЕ месяц" - будут найдены все, содержащие "закрытие", но не содержащие слова "месяц". Использование "~" в начале строки не допускается; РЯДОМ/n (NEAR/[+/-]n) - поиск данных, содержащих в одном реквизите указанные слова с учетом морфологии на расстоянии n слов между словами. Знак указывает, в каком направлении от первого слова будет искаться второе слово ("+" – после первого; "-" – до первого слова). Если знак не указан, то будет найдены данные, содержащие указанные слова на дистанции n слов друг о друга. Порядок слов не имеет значения. "фен РЯДОМ/3 воздух" - будут найдены данные, в которых "воздух" находится не более 3-х слов до или после "фен"; фен РЯДОМ/+3 воздух - будут найдены данные, в которых "воздух" находится не более 3-х слов после "фен"; фен РЯДОМ/-3 воздух - будут найдены данные, в которых "воздух" находится не более 3-х слов перед "фен". РЯДОМ(NEAR) - упрощенный оператор дистанции: оба слова расположены не далее, чем в 8-ми словах друг от друга; пример: "проведение РЯДОМ документ"; "" (текст в кавычках) - поиск точной с учетом морфологии фразы , пример: "проведение документа" - эквивалентно: проведение /1 документа; () - группировка слов (сколько угодно уровней вложенности); пример: "(проведение | выписка) # (счета, документа)"; * - поиск с использованием группового символа (замена окончания слова). Должно быть введено более 1 значащего символа; пример: "доку*" - найдет "документ", "документировать", "документальный" и др.; # - нечеткий поиск слов с заданным количеством отличий от указанного (если не указано, то = 1); пример: запрос "#Система" найдет "систама", "сивтема"; запрос "Система#2" найдет "ситтама", "сеттема"; ! - поиск с учетом синонимов русского, английского и украинского языков. "!" ставится перед соответствующим словом; пример: поиск "!красный кафель", найдет еще и "алый кафель" и "коралловый кафель". Если не указано никаких операторов (слова набраны через пробел), то программа осуществляет поиск всех слов из запроса с использованием оператора И. Замечание 1. Написание операторов И (AND), ИЛИ (OR), НЕ (NOT), РЯДОМ (NEAR) допускается только в верхнем регистре. Замечание 2. Операторы не используются как унарные (в начале строки поиска). Например, нельзя сделать выбор всех глав, в которых отсутствует указанный текст. Ограничение. При использовании нечеткого и группового поиска (операторы "*" и "#") может быть найдено несколько слов. Общее число найденных слов не может превышать 300. <РазмерПорции> (необязательный) Тип: Число. Количество результатов в одной порции. Например, 30. Значение по умолчанию: 20 Возвращаемое значение: Тип: СписокПолнотекстовогоПоиска. Описание: Создает объект СписокПолнотекстовогоПоиска. После создания необходимо вызвать метод ПерваяЧасть - чтобы получить результаты поиска. Доступность: Сервер, толстый клиент, внешнее соединение. Примечание: Если режим полнотекстового поиска запрещен, то использование метода вызывает исключение. |
|||
8
kiruha
24.12.13
✎
13:12
|
||||
9
kiruha
24.12.13
✎
13:13
|
(7)
У 1С собственный полнотекстовый ?? |
|||
10
Cube
24.12.13
✎
13:14
|
(9) А нафиг тогда платформе свой индекс полнотекстового поиска? Я полагаю, что свой.
|
|||
11
Cube
24.12.13
✎
13:15
|
+(10) К тому же в файловой базе тоже есть полнотекстовый поиск.
|
|||
12
kiruha
24.12.13
✎
13:16
|
см из (10)
* - поиск с использованием группового символа (замена окончания слова) а где * с заменой приставки ? |
|||
13
kiruha
24.12.13
✎
13:23
|
И +
Замечание 2. Операторы не используются как унарные (в начале строки поиска) * - оператор Т.е. "ско*" должно быть пусто, а то что находит во второй раз - видимо из за кэширования |
|||
14
Cube
24.12.13
✎
13:27
|
(12) Хз, но автор вроде это и не спрашивал...
|
|||
15
Cube
24.12.13
✎
13:27
|
(13) А может из-за того, что кто-то кнопку "Найти" не нажал :)
|
|||
16
kiruha
24.12.13
✎
13:28
|
На форуме sql тоже пишут, что поиск только по началу слова и словоформам
|
|||
17
The_SpecialOne
24.12.13
✎
17:33
|
(4)Обновил индекс
"тов" -> <Пусто> "тов*" -> "Искомый товар" (6) Про суффиксный полнотекстовый поиск действительно нигде не говорится. Однако результат есть (13) Очистил кеш, результат тот же И самое интересное, решил проверить это на новой платформе, под рукой была только 8.3.4.365. Результата как в (0) добиться не удалось, отрабатывал только префиксный поиск. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |