I costruttori che accettano gli argomenti Field.Index
sono disponibili, ma sono deprecati in 4.0 e non devono essere utilizzati. Invece, dovresti cercare sottoclassi di Field
per controllare come viene indicizzato un campo.
StringField
è il campo indicizzato standard non analizzato. Il campo è indicizzato è un singolo token. Sono cose appropriate come gli identificatori, per i quali hai solo bisogno di cercare corrispondenze esatte.
TextField
è il campo standard analizzato (e, ovviamente, indicizzato) per il contenuto testuale. È una scelta appropriata per la ricerca full-text.
StoredField
è un campo memorizzato che non è indicizzato affatto (e quindi non è ricercabile).
Tranne StoredField
, ciascuno di questi può essere passato un valore Field.Store
come argomento del costruttore, simile a Lucene 3.6.
Per ulteriori informazioni su questo cambiamento, dare un'occhiata al Lucene Migration Guide, in particolare le sezioni intitolate: "IndexableFieldType separato dalle istanze di campo"
Grazie per la risposta. È stato utile Un'altra cosa che possiamo fare è creare un nuovo FieldType e impostare i nostri requisiti utilizzando i metodi disponibili, setIndexed(), setStored(), ecc. E quindi possiamo passare questo oggetto fieldtype al costruttore di campi. –