Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> как в lucene определить есть ли уже значение 
:(
    Опции темы
DooZ
Дата 3.11.2009, 12:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 206
Регистрация: 25.11.2005

Репутация: нет
Всего: 1



Здравствуйте,

Подскажите, как в lucene определить есть ли уже значение в базе или нет (нужно что бы в ней были только уникальные значения)

т.е. я добавляю значение так:

код c# т.к. программа написана на нем

Код

IndexWriter writer = new IndexWriter(BaseLocation, new StandardAnalyzer(), false);
Document doc = new Document();
doc.Add(new Field("content", 'тут значение', Field.Store.YES, Field.Index.TOKENIZED));
writer.AddDocument(doc);
writer.Close();


а вот как определить, есть ли уже в базе это значение или нет?
другими словами, мне нужны только уникальные значения в базе

сорри если разделом ошибся, но в разделе по c# мало посещений, да и вопрос касается lucene, а не языка (на языке просто пример привел)
если что сможет написать ответ на другом языке, то тоже пойдет, мне главное выяснить, есть такие функции у lucene определения элемента в базе
PM MAIL   Вверх
DimW
Дата 3.11.2009, 13:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1330
Регистрация: 24.2.2005
Где: Орёл

Репутация: нет
Всего: 44



Цитата(DooZ @  3.11.2009,  12:41 Найти цитируемый пост)
нужно что бы в ней были только уникальные значения)

повесте на поле таблицы unique constraint.

Цитата(DooZ @  3.11.2009,  12:41 Найти цитируемый пост)
да и вопрос касается lucene

это оно? http://ru.wikipedia.org/wiki/Lucene

Добавлено через 6 минут и 46 секунд
наверное всевтаки это - http://incubator.apache.org/lucene.net/ ...
PM MAIL ICQ   Вверх
DooZ
Дата 3.11.2009, 13:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 206
Регистрация: 25.11.2005

Репутация: нет
Всего: 1



2DimW угу она самая, только я не нашел где можно повесить unique constraint (точнее как)...
уже просто устал с ней и так и сяк :-( видимо усталость сказывается, буду примного благодарен если ткнете носом smile (зы. документацию на сайте уже всю проштудировал (за ночь) :-( не помогло)
PM MAIL   Вверх
DimW
Дата 3.11.2009, 13:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1330
Регистрация: 24.2.2005
Где: Орёл

Репутация: нет
Всего: 44



DooZ, вы с SQL дружите или изабилие фраймворков помутило вам разум  smile 

Код

alter table TABLE_XXX
  add constraint UK_NAME unique (content);



PM MAIL ICQ   Вверх
DooZ
Дата 3.11.2009, 13:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 206
Регистрация: 25.11.2005

Репутация: нет
Всего: 1



может я ошибаюсь, но в lucene нет sql запросов...
PM MAIL   Вверх
DimW
Дата 3.11.2009, 13:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1330
Регистрация: 24.2.2005
Где: Орёл

Репутация: нет
Всего: 44



Цитата(DooZ @  3.11.2009,  13:38 Найти цитируемый пост)
но в lucene нет sql запросов

скорее так и есть, но вы же на уровень БД спуститься можете?!
СУБД какую используете?
PM MAIL ICQ   Вверх
DooZ
Дата 3.11.2009, 13:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 206
Регистрация: 25.11.2005

Репутация: нет
Всего: 1



дык в том-то и дело что использую lucene для хранения строк
я ее использую для последующего быстрого поиска нужной строки (вхождения определенного слова в строку)

тобишь другими словами сторонние БД юзать низя, только чистую lucene вот и нужно разобраться как там хранить только уникальные элементы

Добавлено через 4 минуты и 16 секунд
пробывал на SQLite и Mysql
но добавление новых строк в базу очень долго
а так же поиск по ним тоже долгин

в таблице всего одно поле
string varchar(255) и уникальность по нему

в базе 5 миллионов записей
добавление в нее еще записей достаточно медленно
поиск по
like '%строка%' очень долгий
regexp 'строка' чуть быстрее, но все равно долго
если ставить fulltext index на поле string то добавление в базу новых элементов замедляется еще сильнее =(

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

в базе планируется порядка 100.000.000 записей, так что думаю mysql и sqlite сразу отпадут =(
PM MAIL   Вверх
DimW
Дата 3.11.2009, 14:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1330
Регистрация: 24.2.2005
Где: Орёл

Репутация: нет
Всего: 44



Цитата(DooZ @  3.11.2009,  13:45 Найти цитируемый пост)
тобишь другими словами сторонние БД юзать низя, только чистую lucene 
  smile 
не думал что все так серьезно, думал это просто библиотека для поиска по БД - по крайней мере в все что понял из википедии  smile 

вот что то похоже на создание уникального индыкса (могу ошибаться)
Цитата

Creating a Lucene Index
The example file MakeIndex.java in the directory "simple_example" shows the few lines of code required to create a new Lucene index. This demo program reads all test files in the directory "example_text_files" and adds them to the index. The following few lines of code in the example program use the Lucene class libraries. 

Create a Lucene IndexWriter instance: 

IndexWriter indexWriter = new IndexWriter("index", new StandardAnalyzer(), true);

This creates the index in the directory "index". The standard analyzer tokenizes text and discards some common noise words. The third argument is a flag to indicate that Lucene should delete any existing indices in the "index" directory. You would set this flag to false if you wanted to add to an existing index. 

Create a new Document instance and add it to the index: 

Document document = new Document();
document.add(Field.Text("text", new FileReader(fullPath)));
document.add(Field.UnIndexed("filepath", fullPath));
indexWriter.addDocument(document);


источник - http://www.devx.com/Java/Article/27728/1954

Это сообщение отредактировал(а) DimW - 3.11.2009, 14:03
PM MAIL ICQ   Вверх
DooZ
Дата 3.11.2009, 14:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 206
Регистрация: 25.11.2005

Репутация: нет
Всего: 1



не, это я видел
это просто выделяешь какие поля индексировать какие нет, в данном случае поле filepath не индексируется

ждем, может еще кто подключится с помощью smile
тем немения DimW спасибо за участие

Это сообщение отредактировал(а) DooZ - 3.11.2009, 14:18
PM MAIL   Вверх
DimW
Дата 3.11.2009, 14:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1330
Регистрация: 24.2.2005
Где: Орёл

Репутация: нет
Всего: 44



Цитата(DooZ @  3.11.2009,  14:09 Найти цитируемый пост)
 в данном случае поле filepath не индексируется

а я подумал что UnIndexed от сокращенного UniqueIndexed  smile 

Цитата(DooZ @  3.11.2009,  14:09 Найти цитируемый пост)
ждем, может еще кто подключиться с помощью

вряд ли, вашу тему скорей всего перенесут туда где на SQL не принято писать...  smile 
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java tools & IDE's | Следующая тема »


 




[ Время генерации скрипта: 0.0503 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.