Документы в Lucene должны содержать те же поля?

Я рассматриваю / работающий над реализацией поисковой системы для различных типов контента нашей компании и пытаюсь перенести голову вокруг Lucene (конкретно разновидность .NET).

В настоящий момент мой основной вопрос состоит в том, должны ли документы, которые каждый индексирует, содержать те же поля.

Например:

Document1:

  • Заголовок: "Я - документ, ребенок"
  • Тело: "Вот некоторые важные вещи"
  • Широта: 26.12224
  • Longtitude:-65.23124
  • Бренд: Toshiba

Document2:

  • Заголовок: "Другой документ мной"
  • Тело: "Lorem ipsum и весь тот джаз"
  • Категория: статьи
  • Автор: сэр Loin

... и т.д

7
задан Matt 14 January 2010 в 19:21
поделиться

3 ответа

Ничего в единообразенности силы Лусины.

Если вы ищете на поле, названный «FRED», а не все документы «Фред», «Этот поиск не найдет Fredless Docs.

14
ответ дан 6 December 2019 в 15:22
поделиться

То, что вы называете эмулированной консолью, не имеет ничего общего с эмуляцией или DOS. Вероятно, вы все еще создаете 32/64-разрядные исполняемые файлы Windows, используя только консольную подсистему.

Начните с замены компилятора на компилятор, способный генерировать 16-разрядный код. Я уверен, что OpenWatcom по-прежнему поддерживает 16-битную мишень MZ. IIRC DJGPP тоже, но я не уверен и не знаю, поддерживается ли он до сих пор.

Edit: about gotoxy , можно:

  1. Использовать PDCurses и не важно, что используется внутри (я думаю, что это INT10)
  2. Использовать прерывание 0x10 самостоятельно
  3. Записывать непосредственно в память VGA на 0xB8000

Я никогда на самом деле Третий, кажется, самый быстрый.

-121--3320688-

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

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

Кроме того, «событие», которое должно произойти для продолжения программы, является событием USB. Так как я использую устройство класса HID, нет способа установить событие, чтобы произойти без цикла ожидания. Классы USB HID не разрешают прерывания настройки, об устройстве заявляет ОС.

Мне удалось заставить вышеперечисленное работать. Я прошелся по отладчику и заметил, что дисплей обновится перед функцией сна. Выполняя программу независимо, я получил случайные результаты с дисплеем, освежающим 1% времени. Я избавился от функции сна и добавил другой код, чтобы эмулировать задержку, и это было нормально.

Только для каждого, это возможно, это не запрещено, и это легко сделать со следующим:

qApp->processEvents();

qApp является глобальной внешней переменной в заголовке приложения QApplication.

Поскольку это событие USB усложняет мой поток, я наткнулся на класс QWaitCondition. Я собирался начать процесс ожидания события USB. Я бы подождал, пока процесс не освободит условие ожидания для продолжения моей процедуры.

Но если кто-то считает, что это плохая идея, пожалуйста, выскажитесь. Я действительно ценю ваш отзыв PiredPiper и Враждебная вилка.

Спасибо.

-121--2113785-

Если вы хотите проиндексировать конкретное поле, я полагаю, что все документы должны иметь одинаковые поля.

0
ответ дан 6 December 2019 в 15:22
поделиться

На самом деле проблема заключается в стартовом комплекте emacs, связывающем (set-keyboard-coding-system 'utf-8)

-121--4099535-

Ответ: нет.

Если вы создаете дескриптор окна для любого потока, отличного от потока GUI, вы никогда не сможете его отобразить.

Edit: Полностью возможно создание форм и элементов управления и отображать их в потоке, отличном от основного потока GUI. Конечно, если это позволяет получить доступ только к многопоточному графическому интерфейсу из потока который создал его, но это возможно. - Эшли Хендерсон

Вы должны выполнить любой тяжелый подъем на bg нити, а затем загрузить данные в графический графический интерфейс

-121--2789792-

Все зависит от того, как вы проиндексировали свои документы в Lucene. Все документы должны быть добавлены в индекс. Для этого можно использовать IndexWriter или написать собственный класс. Перед добавлением документа в индекс его следует разбить на пары значений имен. Впоследствии можно запросить у Lucene эти значения имен с помощью QuureParser . Например, следующий запрос вернет все документы с фразами «Я - документ, малыш» в заголовке и «Вот некоторые важные вещи» в теле.

title:("I'm a document, baby") body:("Here are some important things")

Я только что показал простой пример, но вы можете создать более мощный поисковый запрос, различными способами.

Классы, которые я упомянул, являются классами java, но .net должны быть аналогичными.

0
ответ дан 6 December 2019 в 15:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: