Можете ли вы посоветовать, могу ли я использовать только функциональность запросов из Lucene для генерации SQL-запросов?Что-то вроде SQLQueryBuilder?
У меня есть обширная база данных SQL журналов из кластера веб-серверов, содержащая исходные строки запроса и ответа, а также некоторые другие полезные / менее важные биты и бобы.Что мне нужно сделать, это проанализировать параметры в исходном запросе и сравнить с сгенерированными ответами, глядя на отношения, волатильность, изменчивость, согласованность и т. Д.
Этот вопрос не относится к стадии анализа, а только кизвлечение данных из базы данных, которые соответствуют параметрам, которые меня интересуют. Итак, я мог бы просто сделать это в старых добрых SQL-запросах, вручную создавая точные запросы, которые мне нужны, в каждом конкретном случае.Но это немного отстойно;Я считаю, что мы можем быть немного умнее этого.Тем более, что я уже вижу большое количество похожих, но слегка отличающихся друг от друга запросов.И так как я надеюсь, что смогу открыть одно окно поиска через веб-интерфейс для нетехнических конечных пользователей, добавление SQL-запросов кажется плохой идеей ... и рецептом для постоянных запросов на обслуживание (и могу ли я бытьВо-первых, нет, спасибо!).
В идеальном мире я предоставляю форму поиска с возможностью писать простые запросы, такие как
request:"someAttribute=\"someValue\"" AND response="some hoped for result" AND daterange:30
, которые, как мы надеемся, затем найдут все экземпляры запросов, которые содержат someAttribute = "someValue" поверхпоследние 30 дней.Затем результаты будут подвергнуты стандартному статистическому анализу по данному тексту ответа и распечатаны на экране.По крайней мере, это идея.
Большая часть реальной логики, чтобы определить, как обрабатывать определения пользовательских полей или специальные слова, которые мне нужно будет написать самому, и это нормально.И, NB, мои нетехнические конечные пользователи достаточно знакомы с xml, чтобы они могли обрабатывать немного синтаксиса attr = "value", по крайней мере, для первой итерации инструмента: D
Итак, я хочучтобы: 1) разрешить пользователям использовать Google-подобный синтаксис поиска (например, через QueryAPI Lucene), чтобы указать текст для сопоставления в журналах 2) разрешить слою манипулировать запросом на основе специальных слов или полей (например, этот слой может быть во времяФаза объекта Java) 3) преобразовать окончательный запрос в SQL-запрос, подходящий для моей схемы базы данных 4) запросить базу данных и выложить обратно набор результатов для статистического анализа 5) pretty-print на сайте:)
Полностью ли ялаять не на то дерево?Похоже, это должно быть возможно, но я не могу найти много на этом.Я немного погуглил по этому вопросу, например, попробовал «Lucene SQLQueryBuilder» в качестве возможного начала, но на самом деле не нашел ничего путного.
Итак, мои вопросы:
- Кто-нибудь пытался использовать QueryAPI от Lucene, как это раньше?Это сработало?Есть ошибки?
- Существуют ли лучшие библиотеки API запросов?
Примеры, законченные обсуждения и реализации с открытым исходным кодом были бы наиболее полезными.
Большое спасибо.
NB. Я не думаю, что мне нужны поисковые возможности Lucene как таковые, поскольку я только ищу точные совпадения.Мне просто нужен слой запроса поверх базы данных.