|
Lucene.NET или Full-text search?
|
|||
---|---|---|---|
#18+
Собственно говоря, предмет вопроса "Lucene.NET или Full-text search" использовать для поиска на сайте ASP.NET MVC5? Что лучше, что эффективнее? Грабли? Библиотеки дополнительные? Вопросы морфологии? Вообще, стоит ли овчинка выделки? или просто "LIKE" для SQL - достаточно? Входные данные: 12 сущностей по 3-16 свойств у каждой. Nvarchar поля поля почти у каждой, 6 из них NvarChar(max).. в самых больших таблицах по 10000-12000 записей. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2015, 07:29 |
|
Lucene.NET или Full-text search?
|
|||
---|---|---|---|
#18+
Lucene.NET хоть и отстает от java версии но уже давно годный продукт. CalabongaЧто лучше, что эффективнее? эт как сказать что лучше java или C#. к примеру для Full-text search вам надо службу целую, тогда уж лучше elasticsearch. а Like медленный будет на больших объемах да морфологии как таковой не будет. Lucene.NET простенько в коробке и в большинстве запросов должно устроить вас. CalabongaГрабли? в 2.9 версии мне не хватило нормального русского стримера и приходилось писать на коленках свое, в 3++ версии уже все есть. вот даже для фасетного поиска библы появились. Бывало иногда лочился индекс на вставку но там беда была с неправильной работой. CalabongaБиблиотеки дополнительные? Lucene.NET ничего не тащит но плюшек к самой библиотеке можно найти CalabongaВопросы морфологии? не стоит от маленькой библиотеке прям ожидать вау эффекта. если откроете исходники хотя бы анализатора увидите как оно работает. но наверное в 90% случаев хватит такого простого. CalabongaВообще, стоит ли овчинка выделки? или просто "LIKE" для SQL - достаточно? ну если вам нужен топорный поиск то Like подойдет) индекс накрутите и может не будет тормозить) CalabongaВходные данные: 12 сущностей по 3-16 свойств у каждой. Nvarchar поля поля почти у каждой, 6 из них NvarChar(max).. в самых больших таблицах по 10000-12000 записей. ну у меня бд тестова на 50к и складывалось 5 полей и очень шустро. щас экспериментирую с фасетами на lucene, записей столько ж а вот кол-во свой изза eav модели переменянное(от 1 до сколько свойств накрутят), работает на порядок быстрее чем мульти join к таблицам. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2015, 09:41 |
|
Lucene.NET или Full-text search?
|
|||
---|---|---|---|
#18+
Calabonga, ИМХО, стоит. Хотя и FTS тоже прекрасно справляется с несложными задачами. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2015, 11:06 |
|
Lucene.NET или Full-text search?
|
|||
---|---|---|---|
#18+
handmadeFromRu, что-то ты совсем уж о люцене простого мнения. На самом деле, люцена - реальный мощный движок с кучами фишек, способная удовлетворить самого матёрого потребителя. Очень понравилось работать с люценой под .net. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2015, 11:19 |
|
Lucene.NET или Full-text search?
|
|||
---|---|---|---|
#18+
hVostt, забавно, лет семь назад при приеме на работу, предложили написать что то типа похожее, с механизмом индексации кросбазосностью, с ранжированием результата от поисковой фразы, без сторонних примочек. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2015, 11:20 |
|
Lucene.NET или Full-text search?
|
|||
---|---|---|---|
#18+
Где-то в степиhVostt, забавно, лет семь назад при приеме на работу, предложили написать что то типа похожее, с механизмом индексации кросбазосностью, с ранжированием результата от поисковой фразы, без сторонних примочек. выбрал FTS? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2015, 13:38 |
|
Lucene.NET или Full-text search?
|
|||
---|---|---|---|
#18+
Спасибо всем. В общих чертах смысл понятен. В любом случае есть пища для размышления, еще раз спасибо. Буду думать ибо, основываясь на аксиомах: 1) в кривых руках и калькулятор зависает 2) просто вы не умеете их готовить главное с умом подойти и взвешать все "+" и "-"... ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2015, 01:23 |
|
Lucene.NET или Full-text search?
|
|||
---|---|---|---|
#18+
CalabongaСпасибо всем. В общих чертах смысл понятен. В любом случае есть пища для размышления, еще раз спасибо. Буду думать ибо, основываясь на аксиомах: 1) в кривых руках и калькулятор зависает 2) просто вы не умеете их готовить главное с умом подойти и взвешать все "+" и "-"... Думать всегда полезно ;-) Кстати, по поводу: "Вообще, стоит ли овчинка выделки? или просто "LIKE" для SQL - достаточно? handmadeFromRu : ну если вам нужен топорный поиск то Like подойдет) индекс накрутите и может не будет тормозить)" Трудно сказать, где автор советует накрутить индекс для LIKE, но это конечно же поиск с плохой производительностью. Индексами там практически и не пахнет. Да, и помните о словоформах и пр. зы. фигня это ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2015, 10:08 |
|
Lucene.NET или Full-text search?
|
|||
---|---|---|---|
#18+
Сам пользовался lucene net и SQL contains проблемы с lucene: - не работают wildcard в фразах т.е. сделать что-то подобное было невозможно: “ехал* домой человек*”; - расстояние только между словами, нельзя сделать расстояния между групповыми запросами (один | два | три) ~5 (пять | (шесть & семь)); - постоянные падения по памяти, которой вечно не хватало; - периодические проблемы с одновременным поиском и индексацией данных, приводившие к тому, что часть данных не попадало в индекс; - необходимость разбивать сложные запросы, на несколько чтобы отрабатывали в удобоваримое время. проблемы с sql full text: - если данных становится очень много, то и индекс становится огромным, и скорость поиска падает - словоформ нет Не на правах рекламы, а только по доброте душевной можете попробовать, но как у любого другого решения есть свои недостатки Nuget пакет .net Core Nuget пакет .net 472 В пакете реализованы 3 типа индексов: - индекс в памяти «MemoryDocumentIndex» для быстрого поиска в памяти, ограниченный размером RAM; - дисковый индекс «DiskDocumentIndex», сохраняет документы на диск в папку с именем индекса. Индекс можно переносить, просто скопировав папку в другую директорию и развернув новый инстанс. - шардированный дисковый индекс «DiskShardDocumentIndex», для хранения больших индексов, на текущий момент может использоваться для хранения логов, до 90 млн документов. Для морфологии можно использовать словарь русских термов ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2020, 13:07 |
|
Lucene.NET или Full-text search?
|
|||
---|---|---|---|
#18+
Всегда странно, когда поднимается тема 5-10 летней давности, где половина юзеров забанена, кстати, почему бы их не выпустить? Что это за дурь написана? Это о SQL Server? "проблемы с sql full text: - если данных становится очень много, то и индекс становится огромным, и скорость поиска падает - словоформ нет" Юзер, а вы имеете представление, как работает FTS ? Если нет, а так оно и есть, то с чего вы взяли, что ваши приблуды чем-то лучше? Напишите попо дробнее о них ... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2020, 09:52 |
|
Lucene.NET или Full-text search?
|
|||
---|---|---|---|
#18+
Ролг Хупин почему бы их не выпустить? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2020, 11:44 |
|
Lucene.NET или Full-text search?
|
|||
---|---|---|---|
#18+
Ролг Хупин, 1) О MS-SQL Server Full text search, выбрать его с возможность получить боль в будущем, когда данных станет много, если база до 1 млн записей, тогда конечно не стоит заморачиваться. 2) Вам объяснить почему падает скорость индексации в MS SQL, если таблица становится достаточно большой? Даже если отключить лог транзакции и вставлять данные батчами? И что MS SQL создает отдельный индекс на такую таблицу, которая также не прибавляет скорости вставки? По поводу работы FTS можно почитать в интернетах, статья на один лист А4. Основная проблема многих программистов думать, что они умнее всех, но хочу вас заверить что это не так, всегда найдется кто-то умнее, это не про себя конкретно, а про вашу манеру общения. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2020, 23:27 |
|
Lucene.NET или Full-text search?
|
|||
---|---|---|---|
#18+
SBatyrgareev, Асинхронный индекс вам о чём-то говорит? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
17.11.2020, 06:02 |
|
Lucene.NET или Full-text search?
|
|||
---|---|---|---|
#18+
hVostt, Говорит, но проблема будет в дисковом чтении, при вставке данных в индекс, если только у вас не безлимитно памяти. Давайте проясним я говорю об объеме данных от 1 млн сообщений в сутки, с текстом размером до 500Кб, с пиковыми нагрузками на рабочее время. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.11.2020, 16:00 |
|
Lucene.NET или Full-text search?
|
|||
---|---|---|---|
#18+
SBatyrgareev, Ну так распределите нагрузку... :) Много решений есть, FTS тут при чём? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.11.2020, 20:09 |
|
Lucene.NET или Full-text search?
|
|||
---|---|---|---|
#18+
hVostt, :) При том что использовать FTS в SQL плохая идея, если данных достаточно много. и SQL кластер тут не поможет. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.11.2020, 20:16 |
|
Lucene.NET или Full-text search?
|
|||
---|---|---|---|
#18+
SBatyrgareev hVostt, :) При том что использовать FTS в SQL плохая идея, если данных достаточно много. и SQL кластер тут не поможет. Смотря для чего. Использовать ложку в качестве ножа тоже плохая идея. И наоборот. Вообще говорить, что FTS в SQL это плохо -- ну такое себе заявление. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.11.2020, 20:22 |
|
Lucene.NET или Full-text search?
|
|||
---|---|---|---|
#18+
hVostt, Так никто такого не заявляет, что FTS от MS SQL плохо, написано что для конкретной ситуации это плохой выбор. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.11.2020, 20:27 |
|
Lucene.NET или Full-text search?
|
|||
---|---|---|---|
#18+
SBatyrgareev Так никто такого не заявляет, что FTS от MS SQL плохо, написано что для конкретной ситуации это плохой выбор. Вы как раз и заявляете "плохой выбор", "боль в будущем" и т.п. утверждения. При чём ссылаетесь на большой объём данных, типа в MS SQL используют FTS только на жалкой тысчёнке записей что ли? А какой, простите, в этом смысл? У нас есть FTS на данных с количеством записей более 500 миллионов и это превосходно работает. При чём вы говорите следующее: >> но проблема будет в дисковом чтении, при вставке данных в индекс А в других решениях, там что волшебство какое-то, связь с космосом, инопланетяне? Диски не используются или как? :) Сколько бы сообщений в сутки, в час, в секунду не было, их всё равно нужно проиндексировать, а индекс куда-то положить. Думаете тот же эластик в космическое подпространство данные складывает, а потом достаёт как фокусник из шляпы? Это только MS SQL отсталый, использует ОЗУ и диски -- вот же тупые там ребята из майков Конечно же есть причины не использовать MS SQL FTS, а что-то другое, но вы их не назвали. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.11.2020, 00:33 |
|
|
start [/forum/topic.php?fid=18&msg=40018449&tid=1354603]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
40ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
others: | 268ms |
total: | 401ms |
0 / 0 |