2013-04-18 33 views
7

Elasticsearch có cung cấp cách để theo dõi các từ khóa phổ biến không? Ví dụ: tại một khoảng thời gian nhất định, tôi muốn biết các từ khóa xuất hiện thường xuyên trong các truy vấn.Elasticsearch Từ khóa phổ biến

Nếu elasticsearch không có tính năng như vậy, cách tốt nhất để triển khai tính năng bằng elasticsearch là gì?

Cảm ơn!

Trả lời

10

Tôi không nghĩ rằng có một build-in đường cho rằng, nhưng nó phải là khá dễ dàng để đạt được thông qua một terms facet

gì bạn phải làm là:

  1. Lưu tất cả các truy vấn từ khóa cùng với một dấu thời gian trong một chỉ số elasticsearch
  2. Chạy một truy vấn match_all lọc bởi khoảng thời gian bạn quan tâm và áp dụng một khía cạnh hạn vào nó

Thật không may là tôi không có thời gian để viết cho bạn một ví dụ, nhưng điều đó sẽ dẫn bạn đến giải pháp.

Dưới đây là một ví dụ:

// Demo index 
curl -XDELETE 'http://localhost:9200/queries/' 
curl -XPUT 'http://localhost:9200/queries/' 

// Add some data 
curl -XPUT 'http://localhost:9200/queries/query/1' -d ' 
{ 
    "date": "2013-02-19T12:57:23", 
    "query": "Trying out ElasticSearch, so far so good?" 
}' 

curl -XPUT 'http://localhost:9200/queries/query/2' -d ' 
{ 
    "date": "2013-03-02T11:27:23", 
    "query": "Lets give ElasticSearch another try" 
}' 

curl -XPUT 'http://localhost:9200/queries/query/3' -d ' 
{ 
    "date": "2013-04-02T08:27:23", 
    "query": "OK, why dont we stick to SOLR?" 
}' 

curl -XPUT 'http://localhost:9200/queries/query/4' -d ' 
{ 
    "date": "2013-04-19T11:27:23", 
    "query": "Couse ElasticSearch is so much cooler, its bonsai cool" 
}' 

// Query it 
curl -XGET 'http://localhost:9200/queries/query/_search?pretty=true' -d ' 
{ 
    "query" : { 
     "filtered" : { 
      "filter" : { 
       "range" : { 
        "date" : { 
         "gte" : "2013-01-01T00:00:00", 
         "lt" : "2013-04-01T00:00:00" 
        } 
       } 
      }, 
      "query" : { 
       "match_all" : {} 
      } 
     } 
    }, 
    "facets": { 
     "keywords": { 
      "terms": { 
       "field": "query" 
      } 
     } 
    } 
} 
' 

Điều chỉnh phạm vi ngày trong truy vấn để xem các thay đổi của sản lượng

+0

Cảm ơn, tôi sẽ xem xét nó. Nếu bạn có thời gian sau này, xin vui lòng viết một ví dụ. – flamecto

+0

Tôi đã cập nhật câu trả lời, hy vọng điều này sẽ giúp bạn – Thorsten

+0

Có vẻ tốt, cảm ơn một lần nữa! – flamecto

1

ES không có điều này built-in, nhưng có một miễn phí Tìm kiếm dịch vụ Analytics do Sematext điều hành (từ chối trách nhiệm: Tôi làm việc ở đó), bạn có thể sử dụng cho điều đó - xem http://sematext.com/search-analytics/index.html

+0

Chắc chắn, tôi sẽ cho nó một cái nhìn. Cảm ơn vì đã cho tôi biết. – flamecto

1

Câu trả lời được phê duyệt không làm việc nữa vì các khía cạnh đã bị xóa và thay thế bằng terms aggregation thay thế.

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