2010-06-02 40 views
11

tôi sử dụng tìm kiếm gần Solr của khá thường xuyên tìm kiếm các từ trong một phạm vi specifeid của nhau, như vậySolr - tiệm cận Tìm kiếm sử dụng cụm từ

"Government Spending" ~2 

tôi đã tự hỏi liệu có một cách để thực hiện tìm kiếm sự gần gũi sử dụng một cụm từ và một hoặc hai từ. Điều này có thể không? Nếu vậy cú pháp là gì?

Cảm ơn trước Ruth

Trả lời

14

này dường như là "hơi" doable. Xem xét văn bản này:

This is more about traffic between Solr servers themselves 

"more traffic between solr" ~2

"more about between solr" ~2

Thậm chí nếu bạn thay đổi thứ tự nó hoạt động:

"more about solr between" ~2" ~2

Nhưng quá xa nhau và nó ngừng hoạt động:

"more about servers themselves" ~2

Tôi nghĩ rằng nếu điều đó không hoạt động, có thể sẽ không quá khó để thực hiện một trình xử lý yêu cầu tùy chỉnh thực hiện việc này. Tôi nghĩ rằng bạn có thể cần phải xác định một cú pháp mới, có sẵn một cái gì đó như ("phrase one" "phrase two") ~2. Tôi đoán rằng nếu bạn đang lo lắng, và bạn tạo ra một truy vấn Lucene, nơi có một mã thông báo chỉ là "cụm từ một" và một "cụm từ hai" có một khoảng cách nhất định, tôi nghĩ rằng nó sẽ làm việc. (Tất nhiên bạn sẽ cần phải thực sự thực hiện cuộc gọi java lucene, bạn không thể chỉ cần truy vấn trên (đọc này http://lucene.apache.org/java/2_2_0/api/index.html)).

+0

Đó sẽ giúp đỡ, cảm ơn bạn – Ruth

+0

np. Chúc may mắn! Sẽ thật tuyệt vời nếu nghe điều này xảy ra. – mlathe

10

Ra khỏi hộp Tôi đã phát hiện ra cách để thực hiện tìm kiếm lân cận bằng cách sử dụng sau đó một từ hoặc cụm từ, xem bên dưới

ví dụ: với 3 từ:

"(word1) (word2) (word3)" ~ 10

ví dụ: với 2 giai đoạn: (chú ý dấu nháy kép cần phải được thoát)

"(\" phrase1 \ ") (\" phrase2 \ ")" ~ 10

6

Kể từ Solr 4 nó có thể với SurroundQueryParser.

Ví dụ: để truy vấn nơi "cụm từ hai" sau "cụm từ một" không dài quá 3 từ sau:

3W(phrase W one, phrase W two) 

Để truy vấn "cụm từ hai" trong gần 5 lời của "cụm từ một":

5N(phrase W one, phrase W two) 
Các vấn đề liên quan