Pergunta

Estou usando o Lucene.net 3.0.3 para indexar o conteúdo de documentos de palavras, excel-, etc. e alguns campos personalizados para cada documento.
Se eu indexar um campo chamado "título" Como Field.index.Not_Analyzed O índice Lucene armazenou o campo em forma correta. O título do buraco é armazenado em um único token. Isso é o que eu quero.

por exemplo O título do documento é "Lorem Ipsum Dolor"
Campo em Lucene-Index: "Lorem ipsum dolor"

Se eu pesquisar usando a pesquisa exata neste campo, não tenho resultados.
Meu termo de pesquisa parece: Título: "Lorem Ipsum Dolor"
Para pesquisar, uso o mesmo StandardAnalzer.

Por que não consigo encontrar o documento?

Foi útil?

Solução

StandardAnalyzer é sensível ao espaço em branco, entre outros delimitadores. Isto é, ele tokeniza o termo de pesquisa em três tokens:

( Lorem, ipsum, dolor )

Mas seu campo indexado title usando Field.Index.NOT_ANALYZED Portanto, nenhum dos três tokens acima pode corresponder ao token único neste campo:

( Lorem ipsum dolor )

Usar KeywordAnalyzer, que tokeniza todo o valor do campo como um único token. Como sempre, você precisa usar o mesmo analisador para indexação e pesquisa.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top