Khi tôi sử dụng Luke để tìm kiếm chỉ mục Lucene của tôi bằng máy phân tích chuẩn, tôi có thể thấy trường tôi đang tìm kiếm chứa các giá trị của biểu mẫu MY_VALUE. Tuy nhiên, khi tôi tìm kiếm trường: "MY_VALUE", truy vấn được phân tích thành trường: "giá trị của tôi"Tìm kiếm và gạch dưới Lucene
Có cách nào đơn giản để thoát ký tự gạch dưới (_) để nó tìm kiếm không?
EDIT:
4/1/2010 11:08 AM PST
Tôi nghĩ rằng có một lỗi trong tokenizer cho Lucene 2.9.1 và có lẽ họ đã có trước đó. Tải lên Luke và cố gắng tìm kiếm cho "BB_HHH_FFFF5_SSSS", khi có một số, các thẻ sau đây được trả về:
"bb hhh_ffff5_ssss"
Sau một số thử nghiệm, tôi đã phát hiện ra rằng điều này là do con số. Nếu tôi đầu vào
"BB_HHH_FFFF_SSSS", tôi nhận được
"bb hhh ffff ssss"
Tại thời điểm này, tôi nghiêng về phía một lỗi tokenizer trừ sự hiện diện của số lượng được cho là có điều này nhưng tôi không hiểu tại sao.
Có ai có thể xác nhận điều này không?
Không, tôi đã sử dụng trình phân tích tiêu chuẩn làm người lập chỉ mục, đó là lý do tại sao điều này thật lạ. – Matt
Nếu bạn đã lập chỉ mục bằng Trình phân tích chuẩn thì chỉ mục của bạn sẽ chứa "giá trị" và "giá trị" của tôi dưới dạng hai mã thông báo khác nhau. Hãy thử tìm kiếm "giá trị của tôi" (bao gồm cả dấu ngoặc kép) và bạn có thể nhận được kết quả. – Thomas
Tôi sẽ kiểm tra kỹ xem bạn đang sử dụng trình phân tích nào để lập chỉ mục. Nếu bạn đã sử dụng StandardAnalyzer để lập chỉ mục, thì không thể có MY_VALUE như một thuật ngữ, vì StandardAnalyzer luôn tách trên dấu gạch dưới. – bajafresh4life