Hibernate Search

Pessoal,

Estou iniciando com o Hibernate Search e surgiu a seguinte dúvida:
Tenho um campo que está da seguinte forma:

@Lob
@Column(name = "descricao", nullable = false)
@Field(index = Index.YES, norms = Norms.YES, store = Store.YES, analyze = Analyze.YES)
private String descricao;

Quando faço a busca no Search está acontecendo o seguinte se busco por “sistema” e foi cadastrado no campos descrição “sistemas” ele não encontra ele só está encontrando pela string exata eu gostaria de encontrar por parte da string e saber se essa alteração eu faço na busca ou no mapeamento do index???

Segue minha busca:

        @SuppressWarnings("unchecked")
	@Override
	public List<Vaga> findByCargoOrDescricaoLucene(String inputPesquisa,
			Long idEstado, int qtdResult, int page) throws Exception {

		// campos de pesquisa na busca otimizada
		String[] campos = {CAMPO_DESCRICAO, CAMPO_CARGO};
		
		// monta criteria
		Criteria crit = session.createCriteria(Vaga.class);
		crit.add(Restrictions.eq(CAMPO_ATIVO, true));
		crit.addOrder(Order.desc(CAMPO_DT_CREATE));
		if (idEstado != null && idEstado > 0) {
			crit.add(Restrictions.eq(CAMPO_ESTADO_ID, idEstado));
		}

		// monta parser do lucene com os campos descricao e cargo
		MultiFieldQueryParser parser = new MultiFieldQueryParser(Version.LUCENE_35, campos, 
				new StopAnalyzer(Version.LUCENE_35, getSetStopWords()));
		parser.setDefaultOperator(Operator.OR);
		Query luceneQuery = parser.parse(inputPesquisa);
		
		FullTextSession luceneSession = Search.getFullTextSession(session);
		FullTextQuery fullTextQuery = luceneSession.createFullTextQuery(luceneQuery, Vaga.class);
		fullTextQuery.setMaxResults(qtdResult);
		fullTextQuery.setFirstResult((qtdResult * (page + 1)) - qtdResult);
		fullTextQuery.setCriteriaQuery(crit);
		fullTextQuery.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);
		
		return fullTextQuery.list();
	}

Nunca trabalhei com lucene, mas, a Criteria nem está considerando o campo que você menciona, meu camarada.
Veja que o parâmetro inputPesquisa não está em nenhuma parte da Criteria.
Além do que, para comparar trechos de String, use o método like ou iLike.

Então dsrmachado obrigado pela resposta mas oq vc disse não se aplica eu só usaria o like ou ilike em caso de trabalhar diretamente com a Criteria mas agora estou usando o hibernate search e é dessa forma a estrutura de pesquisa dele.

Obrigado!

Amigão, apesar de uma postagem antiga, irei te ajudar, para pesquisar estilo “like” com hibernate search quando voce da .keyword(). aqui ele mostra algumas opções apos o ultimo ponto, a que voce vai utilizar é a wildcard(). e la no matching vc utiliza o asterico * antes e/ou depois da frase digitada, exemplo: se voce digitou jos e quer achar josé seu matching tem de ficar “jos”+"*" dessa forma ele vai procurar como um like, tudo que tiver apos jos e tiver no banco ele tras. Espero ter ajudado. Abraço!