2010-12-30 14 views

Respuesta

7

Puede establecer un aumento de campo durante la indexación. Esto supone que tienes tus datos en dos campos diferentes. Debe escribir un marcador personalizado si desea almacenar todos los datos en un campo combinado grande.

var field = new Field("title", "My title of awesomeness", Field.Store.NO, Field.Index.Analyzed); 
field.SetBoost(2.0); 
document.Add(field); 

Para buscar, use una BooleanQuery que busque tanto el título como el cuerpo.

var queryText = "where's my awesomeness"; 
var titleParser = new QueryParser(Version.LUCENE_29, "title", null); 
var titleQuery = titleParse.Parse(queryText); 
var bodyParser = new QueryParser(Version.LUCENE_29, "body", null); 
var bodyQuery = bodyParser.Parse(queryText); 

var mergedQuery = new BooleanQuery(); 
mergedQuery.Add(titleQuery, BooleanClause.Occur.Should); 
mergedQuery.Add(bodyQuery, BooleanClause.Occur.Should); 
// TODO: Do search with mergedQuery. 
Cuestiones relacionadas