Индексация путей к файлам или URI в Lucene - PullRequest
1 голос
/ 11 сентября 2010

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

Например, если путь

C:\home\user\research\whitepapers\analysis\detail.txt

Я бы хотел, чтобы пользователь мог найти его, запросив path:whitepapers.

Аналогично, если URI равен

http://www.stackoverflow.com/questions/ask

Запрос, содержащий uri:questions, получит его.

Нужно ли использовать специальный анализатор для этих полей или StandardAnaylzer выполнит эту работу? Нужно ли выполнять предварительную обработку этих полей? (Например, чтобы заменить косую черту или обратную косую черту пробелами?)

Предложения приветствуются!

1 Ответ

0 голосов
/ 13 сентября 2010

Вы можете использовать StandardAnalyzer.Я проверил это, добавив следующую функцию в TestStandardAnalyzer.java :

public void testBackslashes() throws Exception {
  assertAnalyzesTo(a, "C:\\home\\user\\research\\whitepapers\\analysis\\detail.txt", new String[]{"c","home", "user", "research","whitepapers", "analysis", "detail.txt"});
  assertAnalyzesTo(a, "http://www.stackoverflow.com/questions/ask", new String[]{"http", "www.stackoverflow.com","questions","ask"});

}

* 1007 от Lucene.Вы можете попробовать это с вашим конкретным дистрибутивом Lucene.Я думаю, что он делает то, что вы хотите, сохраняя при этом доменные имена и имена файлов непрерывными.Я упоминал, что мне нравятся юнит-тесты?
...