Có thể trích xuất danh sách tất cả các thuật ngữ trong chỉ mục Lucene dưới dạng danh sách các chuỗi không? Tôi không thể tìm thấy chức năng đó trong tài liệu. Cảm ơn!Tìm danh sách thuật ngữ được chỉ mục bởi Lucene
Trả lời
Lucene 3:
Java:
IndexReader indexReader = IndexReader.open(path); TermEnum termEnum = indexReader.terms(); while (termEnum.next()) { Term term = termEnum.term(); System.out.println(term.text()); } termEnum.close(); indexReader.close();
Java (tất cả các điều khoản cho một lĩnh vực cụ thể): How can I get the list of unique terms from a specific field in Lucene?
Python: Finding a single fields terms with Lucene (PyLucene)
Trong Lucene 4 (5):
Terms terms = SlowCompositeReaderWrapper.wrap(directoryReader).terms("field");
Edit:
này có vẻ là 'đúng' cách bây giờ (Lucene 6 trở lên):
LuceneDictionary ld = new LuceneDictionary(indexReader, "field");
BytesRefIterator iterator = ld.getWordsIterator();
BytesRef byteRef = null;
while ((byteRef = iterator.next()) != null)
{
String term = byteRef.utf8ToString();
}
Giả sử tên trường là trường "". "Trong Jackrabbit, nó là' "_: FULLTEXT" .' – EJP
@Rob Au 'SlowCompositeReaderWrapper' hiện không được chấp nhận trong 6.1.0. Bạn có biết làm thế nào để làm điều đó trong 6.4.1? – Sundeep
Các nhóm Lucene dường như đã tạo ra thói quen xấu khi không dùng nữa mà không cập nhật Javadoc để hướng mọi người đến những cách thức hoặc phương pháp mới! – Robert
Điều này không hoạt động đối với Lucene 4.0.0 ... – RobAu