Использовать индекс Lucene в Java-приложении - PullRequest
0 голосов
/ 18 октября 2011

Недавно я смотрел на Solr. Я создал индекс в Solr, и я хочу запросить его через мое приложение Java. Я не хочу использовать solr.war в моем приложении. Как я могу использовать его через solrj api или lucene java api? Я думаю добавить этот индекс в контекст проекта и использовать его. Я просмотрел некоторые примеры / учебные пособия, но не нашел ничего, как работать с уже созданным индексом. Пожалуйста, скажите мне правильное решение для этого или любая ссылка, указывающая решение будет оценено.

Ответы [ 3 ]

0 голосов
/ 18 октября 2011

Вы можете использовать Lucene apis для создания / обновления и поиска по индексу.
Поскольку solr основан на люцене, основным индексом является индекс люцена.
Lucene предоставляет классы IndexWriter и IndexSearcher, которые помогут вам взаимодействовать с индексом.

Пример поиска по solr / lucene index -

Directory index = FSDirectory.open(new File("/path/to/index")); 
IndexSearcher searcher = new IndexSearcher(index, true);
TopScoreDocCollector collector = TopScoreDocCollector.create(10, true);
searcher.search(q, collector);
ScoreDoc[] hits = collector.topDocs().scoreDocs;

Должен быть в состоянии найти примеры по этому вопросу.

0 голосов
/ 19 октября 2011

Я сделал это так ..

String realPath = request.getRealPath("/");
        StandardAnalyzer analyzer = new StandardAnalyzer(Version.LUCENE_CURRENT);
        Directory index = FSDirectory.open(new File(realPath+"/index"));
        IndexSearcher indexSearcher = new IndexSearcher(index, true);
        TopScoreDocCollector collector = TopScoreDocCollector.create(2000, true);

        QueryParser query = new QueryParser(Version.LUCENE_CURRENT, "name", analyzer);
        Query q = null;
        try {
            q = query.parse("*:*");
        } catch (ParseException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        indexSearcher.search(q, collector);
        ScoreDoc[] scoreDoc = collector.topDocs().scoreDocs;
0 голосов
/ 18 октября 2011

Да, вы можете использовать созданный Solr индекс с Lucene, в этом нет ничего особенного, потому что сам Solr использует Lucene. Таким образом, вся документация Lucene применяется без изменений.

Или, если вы не хотите использовать Solr в качестве сервера, вы можете использовать его , встроенный в ваше приложение Java.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...