Mới đây để tìm kiếm đàn hồi và cố gắng hiểu rõ hơn về sự khác biệt giữa các truy vấn này. Theo như tôi có thể biết, các kết hợp term
một cụm từ (cần phải viết thường cho kết quả phù hợp để hoạt động?) Và cả hai số match phrase
và query string
khớp với một chuỗi văn bản.Tìm kiếm đàn hồi: Sự khác biệt giữa "Cụm từ", "Cụm từ đối sánh" và "Chuỗi truy vấn"
Trả lời
term
truy vấn khớp với một cụm từ như sau: giá trị là không được phân tích. Vì vậy, nó không phải được hạ thấp tùy thuộc vào những gì bạn đã lập chỉ mục.
Nếu bạn cung cấp Bennett
lúc chỉ số và giá trị không được phân tích, các truy vấn sau đây sẽ không trở lại bất cứ điều gì:
{
"query": {
"term" : { "user" : "bennett" }
}
}
match_phrase
truy vấn sẽ phân tích đầu vào nếu phân tích được định nghĩa cho lĩnh vực truy vấn và tìm các văn bản phù hợp với các tiêu chí sau:
- tất cả các điều khoản phải xuất hiện trong lĩnh vực này
- họ phải có cùng trật tự như giá trị đầu vào
Ví dụ, nếu bạn chỉ mục các loại giấy tờ sau (sử dụng standard
phân tích cho trường foo
):
{ "foo":"I just said hello world" }
{ "foo":"Hello world" }
{ "foo":"World Hello" }
truy vấn match_phrase
này sẽ chỉ trả lại tài liệu đầu tiên và thứ hai:
{
"query": {
"match_phrase": {
"foo": "Hello World"
}
}
}
query_string
truy vấn tìm kiếm , theo mặc định, trên trường _all chứa văn bản của một số trường văn bản cùng một lúc. Ngày đầu đó, nó được phân tích cú pháp và hỗ trợ một số toán tử (AND/OR ...), ký tự đại diện và vv (xem related syntax).
Là truy vấn match_phrase
, đầu vào được phân tích theo bộ phân tích trên trường được truy vấn.
Không giống như match_phrase
, các thuật ngữ thu được sau khi phân tích không nhất thiết phải theo cùng một thứ tự, trừ khi người dùng đã sử dụng dấu ngoặc kép quanh đầu vào.
Ví dụ, bằng cách sử dụng cùng một tài liệu như trước đây, truy vấn này sẽ trả lại tất cả các tài liệu:
{
"query": {
"query_string": {
"query": "hello World"
}
}
}
Nhưng truy vấn này sẽ trở lại với 2 văn bản giống như match_phrase
truy vấn:
{
"query": {
"query_string": {
"query": "\"Hello World\""
}
}
}
Có nhiều điều để nói về các tùy chọn khác nhau cho các truy vấn đó, vui lòng xem tài liệu có liên quan:
Hy vọng điều này là đủ rõ ràng và nó sẽ giúp.
Tôi nghĩ rằng một số một chắc chắn tìm kiếm sự khác biệt giữa chúng liên quan đến TÌM KIẾM MỘT PHẦN Dưới đây là phân tích của tôi với mặc định 'phân tích tiêu chuẩn': -
Giả sử, Chúng tôi có dữ liệu: -
{ "tên": “Xin chào”}
Bây giờ nếu chúng ta muốn thực hiện tìm kiếm một phần với ell ???
Query Term HOẶC trận truy vấn
{"term":{"name": "*ell*" }
Sẽ không làm việc, trở lại lưu ý.
{"term":{"name": "*zz* *ell*" }
Sẽ không hoạt động, trả lại lưu ý.
Kết luận - Thời hạn hoặc trận đấu là không thể làm được việc tìm kiếm một phần ở tất cả các truy vấn
wildcard: -
{"wildcard":{"name": "*ell*" }
Sẽ làm việc cho kết quả { "tên": "Xin chào "}
{"wildcard":{"name": "*zz* *ell*" }
Sẽ không hoạt động, trả lại n oting.
Kết luận - wildcard có thể làm tìm kiếm một phần với một chiếc thẻ chỉ
QUERY_STRING: -
{"query_string": {"default_field": "name","query": "*ell*"}
Sẽ làm việc cho kết quả { "tên": “Xin chào”}
{"query_string": {"default_field": "name","query": "*zz* *ell*" }
Sẽ cho kết quả {"name": "Hello"}.
Kết luận - QUERY_STRING có thể tìm kiếm với hai dấu hiệu được cho
-> đây là dấu hiệu ell và zz
- 1. tìm kiếm đàn hồi đối sánh cụm từ chính xác
- 2. Kết hợp cụm từ tìm kiếm đàn hồi
- 3. Cách bật tính năng mờ cho các truy vấn cụm từ trong Tìm kiếm Đàn hồi
- 4. Elastic Truy vấn Tìm kiếm - Cụm từ với không gian
- 5. Lucene: Cụm từ nhiều từ như cụm từ tìm kiếm
- 6. Ghi điểm theo vị trí cụm từ trong Tìm kiếm Đàn hồi?
- 7. Sự khác nhau giữa truy vấn cụm từ và sử dụng bộ lọc zona là gì?
- 8. Sự khác biệt giữa bằng và chính xác bằng toán tử so sánh cụm từ
- 9. Hỗ trợ Schemaless cho truy vấn tìm kiếm đàn hồi
- 10. Đối sánh chính xác với Tìm kiếm Đàn hồi (tại thời điểm truy vấn)
- 11. thuật ngữ truy vấn tìm kiếm đàn hồi và ghi
- 12. Tìm kiếm Đàn hồi và "truy vấn phụ"
- 13. select2 search - chỉ đối sánh các từ bắt đầu với cụm từ tìm kiếm
- 14. Tìm kiếm tiền tố cụm từ tìm kiếm - Làm cách nào để nhận được cụm từ phù hợp?
- 15. Sự khác biệt giữa cụm từ và thuật ngữ trong truy vấn có cấu trúc là gì?
- 16. Đánh dấu các cụm từ tìm kiếm trong diễn đàn khi đến từ websearch
- 17. Sự khác biệt giữa chỉ mục cụm và không phải cụm trong SQL
- 18. Đối sánh cụm từ với API tìm kiếm nội dung Sitecore
- 19. Bản đồ đàn hồi Giảm: sự khác biệt giữa CANCEL_AND_WAIT và CONTINUE?
- 20. sự khác biệt giữa hai cụm từ thông dụng: [abc] + và ([abc]) +
- 21. Truy vấn Cypher với cụm từ thông dụng
- 22. Tìm kiếm chuỗi truy tìm trên các phần tử mảng trong Tìm kiếm Đàn hồi
- 23. Tìm từ khác nhau giữa hai chuỗi
- 24. Cách loại trừ số lượng lớn ID từ truy vấn Tìm kiếm Đàn hồi
- 25. Tìm kiếm cụm từ chính xác trong chỉ mục Algolia
- 26. Trích xuất đối sánh cụm từ thông dụng
- 27. Sao chép từ cụm từ tìm kiếm vim
- 28. Tìm kiếm đàn hồi cho dữ liệu chuỗi thời gian
- 29. Tìm kiếm Đàn hồi multi_match cross_fields prefix
- 30. Máy phân tích và khía cạnh tìm kiếm đàn hồi
Tuyệt vời, tuyệt vời, và triệt để giải thích! Điều duy nhất tôi chưa rõ là phân tích chính xác là gì hay không ... – blee908
Bạn được chào đón :) Các nhà phân tích xử lý văn bản để thu được các thuật ngữ cuối cùng được lập chỉ mục/tìm kiếm. Đọc những [trang của Hướng dẫn dứt khoát của ElasticSearch] (http://www.elasticsearch.org/guide/en/elasticsearch/guide/current/_exact_values_vs_full_text.html) vì đây là một khái niệm thực sự quan trọng cần hiểu. – ThomasC
Vâng đến từ SQL, có rất nhiều ý tưởng mới ở đây. Sự khác biệt giữa truy vấn và bộ lọc, giá trị chính xác so với văn bản đầy đủ, đối tượng tìm kiếm JSON và cách tìm kiếm đàn hồi đang thực hiện tìm kiếm của nó. SO MUCH TO TO !!! Cảm ơn vì tài nguyên! – blee908