It's my query:
Code:
QueryBuilder queryBuilder = fullTextSession.
getSearchFactory().
buildQueryBuilder().
forEntity(Post.class).
get();
org.apache.lucene.search.Query luceneQuery = queryBuilder.phrase().
onField("firstField").
andField("secondField").
sentence(searchText).
createQuery();
Query query = fullTextSession.createFullTextQuery(luceneQuery);
query.setMaxResults(DEFAULT_MAX_RECORD);
It's my index definition:
Code:
@AnalyzerDefs({
@AnalyzerDef(name = "russianAnalyzer",
tokenizer = @TokenizerDef(factory = StandardTokenizerFactory.class),
filters = {
@TokenFilterDef(factory = LowerCaseFilterFactory.class),
@TokenFilterDef(factory = SnowballPorterFilterFactory.class,
params = @Parameter(name="language", value="Russian"))
}
),
@AnalyzerDef(name = "defaultAnalyzer",
tokenizer = @TokenizerDef(factory = StandardTokenizerFactory.class),
filters = {
@TokenFilterDef(factory = StandardFilterFactory.class),
@TokenFilterDef(factory = LowerCaseFilterFactory.class),
@TokenFilterDef(factory = SnowballPorterFilterFactory.class)
}
)
})
@Indexed
...
@Fields({
@Field(name = "firstField",
index = Index.TOKENIZED, analyzer = @Analyzer(definition = "russianAnalyzer")),
@Field(name = "secondField",
index = Index.TOKENIZED, analyzer = @Analyzer(definition = "defaultAnalyzer"))
})
public String getContent() {
return content;
}
...