2013-10-17 16 views
16

Có ai biết cách thêm bộ lọc vào suggester không?Tôi làm cách nào để thêm bộ lọc vào Đề xuất hoàn thành trong Tìm kiếm đàn hồi?

này hoạt động rất tốt:

{ 
"headline-suggest" : { 
    "text" : "n", 
    "completion" : { 
     "field" : "headline_suggest" 
    } 
} 

nhưng tôi muốn buộc ElasticSearch để xây dựng danh sách gợi ý từ tập hợp con của dữ liệu, như:

{ 
"headline-suggest" : { 
    "text" : "n", 
    "completion" : { 
     "field" : "headline_suggest" 
    } 
}, 
"filter" : { 
    "term" : { "mydifferentfield" : "someword" } 
} 
} 

Làm thế nào tôi có thể đạt được điều đó?

(Tôi đang sử dụng elasticsearch 0.90.5)

+0

Bạn có thể gửi giải pháp của bạn hoặc chấp nhận một câu trả lời? –

Trả lời

2

tôi không thực sự chắc chắn về điều đó, nhưng tôi nghĩ rằng bạn không thể lọc một yêu cầu đề nghị trong elasticsearch.

từ những gì tôi đọc này là do loại cấu trúc dữ liệu được lưu trữ. Elasticsearch tính toán dữ liệu thống kê về các thuật ngữ đề xuất tại thời gian chỉ mục và sử dụng các thuật ngữ đó cho các hoạt động đề xuất.

bạn có thử thực hiện truy vấn thông thường kết hợp với đề xuất không? có thể có một kết quả khác với điều đó?

curl -s -XPOST 'localhost:9200/_search' -d '{ 
    "query" : { 
    ... 
    }, 
    "suggest" : { 
    ... 
    } 
}' 
+3

Không có bộ lọc nào được hỗ trợ. Một FST được xây dựng trong bộ nhớ và được cập nhật tại thời gian chỉ mục, không có cách nào để lọc ra các đề xuất tại thời điểm truy vấn. – javanna

+0

đó là những gì tôi nhớ. – phoet

+0

Bộ lọc hiện được hỗ trợ bằng cách sử dụng các trình đề xuất 'bối cảnh'. https://www.elastic.co/blog/elasticsearch-1-2-adding-context-suggestions –

0

Không có cách nào để lọc khi bạn hoàn thành. Như javanna đã nói, Tính năng hoàn thành được xây dựng trên FST tại thời điểm lập chỉ mục, do đó bạn không thể sử dụng bộ lọc tại đây.

Để làm điều đó, bạn có thể chơi xung quanh với ngram/cạnh ngram. Hãy đọc ở đây để có ý tưởng cơ bản: http://jontai.me/blog/2013/02/adding-autocomplete-to-an-elasticsearch-search-application/

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