При поиске в lucene нужно создавать черепицу термина - PullRequest
0 голосов
/ 23 ноября 2011

У меня есть вопрос, связанный с shingleAnalyzer, я хочу создать гальку для поискового запроса при подаче их в lucene для поиска

String term = "new york";
String[] fields = {"city", "city_desc"};
ShingleAnalyzerWrapper shingleWrapper = new ShingleAnalyzerWrapper(new StandardAnalyzerNew(Version.LUCENE_30, new File(GlobalData.GENERAL_STOPWORD_FILE)) , 5);

MultiFieldQueryParser queryParser = new MultiFieldQueryParser(Version.LUCENE_30,
                                                                  fields,
                                                                  shingleWrapper
                                                                 );
Query query = queryParser.parse(term); 
System.out.println("query : " + query.toString());
output: (city : new city_desc: new), (city : york city_desc : york)

Здесь дранка термина не может генерировать, я хочу иметь что-то вроде этого:

output : (city : new city_desc: new), (city : york city_desc : york), (city: new york, city_desc : new york)

Есть идеи? Как я могу это сделать?

1 Ответ

1 голос
/ 06 марта 2012

вы можете создать анализатор запросов, полученный из MultiFieldQueryParser, с переопределенной функцией getFieldQuery (String, String, boolean), где термины будут объединяться в черепицы и будут создаваться запросы из этих черепок.если это все еще актуально, я могу получить пример кода для этого

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