2012-11-15 26 views
31

Cố truy cập văn bản được phân tích/mã hóa trong tài liệu ElasticSearch của tôi.Lấy các thẻ phân tích từ các tài liệu ElasticSearch

Tôi biết bạn có thể sử dụng Analyze API để phân tích văn bản tùy ý theo mô-đun phân tích của mình. Vì vậy, tôi có thể sao chép và dán dữ liệu từ tài liệu của mình vào API phân tích để xem cách mã thông báo.

Điều này dường như tốn thời gian không cần thiết. Có cách nào để hướng dẫn ElasticSearch trả về văn bản được mã hóa trong kết quả tìm kiếm không? Tôi đã xem qua các tài liệu và không tìm thấy gì cả.

Trả lời

14

Hãy xem câu trả lời khác này: elasticsearch - Return the tokens of a field. Thật không may nó đòi hỏi phải reanalyze trên bay nội dung của lĩnh vực của bạn bằng cách sử dụng kịch bản được cung cấp.
Bạn có thể viết một plugin để hiển thị tính năng này. Ý tưởng sẽ là thêm hai thiết bị đầu cuối vào:

  • cho phép đọc điều khoản lucene giống như solr TermsComponent, cũng hữu ích khi thực hiện đề xuất tự động. Lưu ý rằng nó sẽ không được cho mỗi tài liệu, chỉ mỗi cụm từ trên chỉ mục với tần suất và tần suất tài liệu (có thể đắt tiền với nhiều cụm từ duy nhất). Điều này sẽ được cho mỗi tài liệu nhưng yêu cầu lưu trữ các vectơ hạn (bạn có thể cấu hình nó trong ánh xạ của bạn) và cho phép cũng lấy lại các vị trí và bù đắp nếu được kích hoạt.
+0

Tôi cũng có nhu cầu về trường hợp đầu tiên ở đó, nhưng tôi không quan tâm đến tần số, tôi chỉ muốn danh sách - vì vậy kế hoạch của tôi chỉ là lặp qua bộ nhớ cache của trường) nhưng không thu thập số lượng. Tôi có một plugin được viết một phần cho nó. –

+0

Công việc hay, nó sẽ rất tuyệt nếu bạn có thể chia sẻ nó trên github! :) – javanna

+0

nếu bạn muốn nói với tôi - vâng tôi sẽ làm khi nào, ở đây: https://github.com/ptdavteam/elasticsearch-approx-plugin –

15

Câu hỏi này là cũ, nhưng có lẽ tôi nghĩ câu trả lời bổ sung là cần thiết.

Với ElasticSearch 1.0.0, Term Vector API được thêm vào cho phép bạn truy cập trực tiếp vào mã thông báo của các cửa hàng ElasticSearch theo từng tài liệu. Tài liệu API không rõ ràng về điều này (chỉ được đề cập trong ví dụ), nhưng để sử dụng API, trước tiên bạn phải chỉ ra trong mapping definition rằng bạn muốn lưu trữ vectơ cụm từ với thuộc tính term_vector trên mỗi trường.

5

Bạn có thể muốn sử dụng tập lệnh, tuy nhiên máy chủ của bạn phải bật tính năng tạo tập lệnh.

curl 'http://localhost:9200/your_index/your_type/_search?pretty=true' -d '{ 
    "query" : { 
     "match_all" : { } 
    }, 
    "script_fields": { 
     "terms" : { 
      "script": "doc[field].values", 
      "params": { 
       "field": "field_x.field_y" 
      } 
     } 
    } 
}' 

Cài đặt mặc định cho phép tập lệnh phụ thuộc vào phiên bản tìm kiếm đàn hồi, vì vậy hãy kiểm tra xem tài liệu chính thức.

Các vấn đề liên quan