Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Проблема поиска ip адресов в тексте  [new]
Jhonny-2005
Member

Откуда: Москва
Сообщений: 72
Добрый день(утро,вечер, ночь). Возник вопрос по полнотекстовому поиску. Проиндексированы . Но при поиске в одном варианте находит документ, а в другом нет. Т.е. допустим имеется файл с двумя строчками:
85.91.115.94
172.17.0.15

Ну дак вот, если задать
select * from SBEDocVer where Contains(VersionData, '85.91.115.94')
То текст ненаходит. Срабатывает вариант:
select * from SBEDocVer where Contains(VersionData, '85.')
Но в то же время замечательно отрабатывается и находит:
select * from SBEDocVer where Contains(VersionData, '172.17.0.15')

SQL Server 2008R2 Enterprise.
Подскажите, куда копать.
12 апр 13, 14:48    [14173202]     Ответить | Цитировать Сообщить модератору
 Re: Проблема поиска ip адресов в тексте  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
Не для этого FTS предназначен, но попробуйте:

select * from SBEDocVer where Contains(VersionData, ' "85.91.115.94" ')


Сообщение было отредактировано: 12 апр 13, 15:01
12 апр 13, 15:01    [14173356]     Ответить | Цитировать Сообщить модератору
 Re: Проблема поиска ip адресов в тексте  [new]
Jhonny-2005
Member

Откуда: Москва
Сообщений: 72
pkarklin,

Такой вариант я тоже пробовал. Не прокатывает(
12 апр 13, 15:16    [14173531]     Ответить | Цитировать Сообщить модератору
 Re: Проблема поиска ip адресов в тексте  [new]
invm
Member

Откуда: Москва
Сообщений: 9824
Jhonny-2005,

Отключите у индекса стоп-лист.
12 апр 13, 15:24    [14173623]     Ответить | Цитировать Сообщить модератору
 Re: Проблема поиска ip адресов в тексте  [new]
Jhonny-2005
Member

Откуда: Москва
Сообщений: 72
invm, Отключил таким образом.

ALTER DATABASE [Jhonny] SET COMPATIBILITY_LEVEL = 100
-- Указать, что список стоп-слов не применяется для следующих таблиц
GO
use [Jhonny]
ALTER FULLTEXT INDEX ON [dbo].[SBIndexDataEDoc] SET STOPLIST = OFF
ALTER FULLTEXT INDEX ON [dbo].[SBIndexDataTask] SET STOPLIST = OFF
ALTER FULLTEXT INDEX ON [dbo].[SBIndexDataFolder] SET STOPLIST = OFF
ALTER FULLTEXT INDEX ON [dbo].[SBIndexDataJob] SET STOPLIST = OFF
ALTER FULLTEXT INDEX ON [dbo].[SBTaskText] SET STOPLIST = OFF
ALTER FULLTEXT INDEX ON [dbo].[SBEDocVer] SET STOPLIST = OFF
GO
-- Вернуть старый режим совместимости
ALTER DATABASE [Jhonny] SET COMPATIBILITY_LEVEL = 80
GO

После чего сделал полный реиндекс, но поиск так и не проходит.
Может как то по другому еще отключить?
12 апр 13, 15:33    [14173703]     Ответить | Цитировать Сообщить модератору
 Re: Проблема поиска ip адресов в тексте  [new]
invm
Member

Откуда: Москва
Сообщений: 9824
Покажите результат select @@version
12 апр 13, 16:17    [14174052]     Ответить | Цитировать Сообщить модератору
 Re: Проблема поиска ip адресов в тексте  [new]
Jhonny-2005
Member

Откуда: Москва
Сообщений: 72
invm,

Microsoft SQL Server 2008 R2 (RTM) - 10.50.1600.1 (Intel X86) Apr 2 2010 15:53:02 Copyright (c) Microsoft Corporation Enterprise Edition on Windows NT 5.2 <X86> (Build 3790: Service Pack 2) (Hypervisor)
12 апр 13, 16:23    [14174083]     Ответить | Цитировать Сообщить модератору
 Re: Проблема поиска ip адресов в тексте  [new]
Glory
Member

Откуда:
Сообщений: 104751
Jhonny-2005
Ну дак вот, если задать
select * from SBEDocVer where Contains(VersionData, '85.91.115.94')
То текст ненаходит. Срабатывает вариант:
select * from SBEDocVer where Contains(VersionData, '85.')

А какой запрос без fts находит запись со строкой 85.91.115.94 ?
12 апр 13, 16:54    [14174286]     Ответить | Цитировать Сообщить модератору
 Re: Проблема поиска ip адресов в тексте  [new]
Jhonny-2005
Member

Откуда: Москва
Сообщений: 72
Glory,

Честно говоря больше никаким не пробовал. Я не слишком силён пока в SQL к сожалению.
12 апр 13, 16:59    [14174331]     Ответить | Цитировать Сообщить модератору
 Re: Проблема поиска ip адресов в тексте  [new]
Glory
Member

Откуда:
Сообщений: 104751
Jhonny-2005
Честно говоря больше никаким не пробовал

Откуда тогда известно, что искомая подстрока вообще есть ?
12 апр 13, 17:01    [14174348]     Ответить | Цитировать Сообщить модератору
 Re: Проблема поиска ip адресов в тексте  [new]
Jhonny-2005
Member

Откуда: Москва
Сообщений: 72
Glory,

Вот и хочу узнать, заносится ли она в индексы.
Т.к. документ один! И в ней имеется две строки, в каждой записан ip адрес, один ip находит, а второй нет.
12 апр 13, 17:04    [14174365]     Ответить | Цитировать Сообщить модератору
 Re: Проблема поиска ip адресов в тексте  [new]
Glory
Member

Откуда:
Сообщений: 104751
Jhonny-2005
Вот и хочу узнать, заносится ли она в индексы.

В индекс прежде всего заносится то, что существует.

Jhonny-2005
Т.к. документ один! И в ней имеется две строки, в каждой записан ip адрес, один ip находит, а второй нет.

Если вы поищите адрес 255.255.255.255, то скорее всего тоже ничего не найдете.
12 апр 13, 17:07    [14174380]     Ответить | Цитировать Сообщить модератору
 Re: Проблема поиска ip адресов в тексте  [new]
Jhonny-2005
Member

Откуда: Москва
Сообщений: 72
Glory,

Полностью 255.255.255.255 тоже не ищет.
Поиском находит только если набрать 255.255.
Далее если добавить цифру 2 после точки, то всё, документ уже не найден.
15 апр 13, 13:01    [14181190]     Ответить | Цитировать Сообщить модератору
 Re: Проблема поиска ip адресов в тексте  [new]
Glory
Member

Откуда:
Сообщений: 104751
Jhonny-2005
Далее если добавить цифру 2 после точки, то всё, документ уже не найден.

Вы все еще про FTS ? Или уже про другой запрос ?
15 апр 13, 13:04    [14181216]     Ответить | Цитировать Сообщить модератору
 Re: Проблема поиска ip адресов в тексте  [new]
Jhonny-2005
Member

Откуда: Москва
Сообщений: 72
Glory,

я про FTS.
Извиняюсь, немного наврал. Находит только при 255.
15 апр 13, 13:54    [14181597]     Ответить | Цитировать Сообщить модератору
 Re: Проблема поиска ip адресов в тексте  [new]
Glory
Member

Откуда:
Сообщений: 104751
Jhonny-2005
я про FTS.

Т.е. доказательств, что искомая подстока существует именно в том виде, что вы ищите, по прежнему нет ?
15 апр 13, 13:56    [14181616]     Ответить | Цитировать Сообщить модератору
 Re: Проблема поиска ip адресов в тексте  [new]
Jhonny-2005
Member

Откуда: Москва
Сообщений: 72
Glory,

Именно. Причем допустим, изменив в документе 255.255.255.255 на 255-255-255-255 и заново проиндексировав, прекрасно находим данные.
15 апр 13, 13:59    [14181629]     Ответить | Цитировать Сообщить модератору
 Re: Проблема поиска ip адресов в тексте  [new]
Glory
Member

Откуда:
Сообщений: 104751
Jhonny-2005
Именно.

Тогда на основании чего вы говорите, что FTS что-то не находит ?
Если вы ничем не можете проверить это.
15 апр 13, 14:00    [14181642]     Ответить | Цитировать Сообщить модератору
 Re: Проблема поиска ip адресов в тексте  [new]
Jhonny-2005
Member

Откуда: Москва
Сообщений: 72
Glory,

Ну вот смотрите.
Допустим, в базу занесён текстовый документ. В нём 6 строк:
85.91.115.94
172.17.0.15
255.255.255.255
255,255,255,255
255/255/255/255
255-255-255-255
Далее запускаем MS SQL Server Managment Studio запрос:
select * from SBEDocVer where Contains(VersionData, ' "85.91.115.94" ')
Итог: Результат НЕ находится, т.е. результат выполнения пуст.
Далее просто меняем значение 85.91.115.94 на 172.17.0.15, в итоге результат есть, документ найден.
далее меняем на 255.255.255.255, результата нет, как и с 255,255,255,255. Но при 255/255/255/255 и 255-255-255-255 результат снова положительный, документ находится.
15 апр 13, 15:07    [14182110]     Ответить | Цитировать Сообщить модератору
 Re: Проблема поиска ip адресов в тексте  [new]
смотрю_тут
Member

Откуда:
Сообщений: 1368
все таки у вас на точке "." стопится , раз через тире находит.
стоп лист точно отключен?, после этого надо вроде перестроить индекс.
15 апр 13, 15:20    [14182192]     Ответить | Цитировать Сообщить модератору
 Re: Проблема поиска ip адресов в тексте  [new]
invm
Member

Откуда: Москва
Сообщений: 9824
Jhonny-2005,

Для начала, пропатчтье сервер (а то у вас там RTM)
15 апр 13, 15:21    [14182211]     Ответить | Цитировать Сообщить модератору
 Re: Проблема поиска ip адресов в тексте  [new]
Jhonny-2005
Member

Откуда: Москва
Сообщений: 72
смотрю_тут
все таки у вас на точке "." стопится , раз через тире находит.

Но ведь вариант 172.17.0.15 находит!!! Я понимаю, если бы он еще этот вариант не находил!
15 апр 13, 15:25    [14182246]     Ответить | Цитировать Сообщить модератору
 Re: Проблема поиска ip адресов в тексте  [new]
invm
Member

Откуда: Москва
Сообщений: 9824
use master;
create database TestDB;
go

use TestDB;
go

create table dbo.TestTable
(
 id int not null constraint PK_TestTable primary key,
 v varchar(100)
);
go

insert into dbo.TestTable
values
 (1, '85.91.115.94
172.17.0.15
255.255.255.255
255,255,255,255
255/255/255/255
255-255-255-255');
go

create fulltext catalog Test;
go

create fulltext index on dbo.TestTable (v) key index PK_TestTable on Test;
go

waitfor delay '00:00:02';
go

alter database TestDB set compatibility_level = 80;
go

select * from dbo.TestTable where contains(v, '255.255.255.255');
select * from dbo.TestTable where contains(v, '"255.255.255.255"');
select * from dbo.TestTable where contains(v, '85.91.115.94');
select * from dbo.TestTable where contains(v, '"85.91.115.94"');
go

use master;
alter database TestDB set single_user with rollback immediate;
drop database TestDB;
go
Работает корректно на 10.50.4276 и без отключения стоп-листа и с разными языками.
15 апр 13, 15:25    [14182247]     Ответить | Цитировать Сообщить модератору
 Re: Проблема поиска ip адресов в тексте  [new]
Glory
Member

Откуда:
Сообщений: 104751
Jhonny-2005
Далее запускаем MS SQL Server Managment Studio запрос:
select * from SBEDocVer where Contains(VersionData, ' "85.91.115.94" ')
Итог: Результат НЕ находится, т.е. результат выполнения пуст.

Да что вы все один и то же FTS запрос повторяете ?
Вот если бы не было FTS, вы бы как искали подстроку в строке ?
15 апр 13, 15:29    [14182280]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить