możemy wyszukać wszystkie słowa w konkretnej document.field tak:elasticsearch dopasować wszystkie słowa z dokumentu w zapytaniu
{ "query" : { "match" : { "title": { "query" : "Black Nike Mens", "operator" : "and" } } } }
To będzie szukał słów Black
, Nike
i Mens
w dziedzinie title
tak, że zwracane są tylko te dokumenty, które będą miały WSZYSTKIE te słowa w polu title
.
Ale to, co próbuję zrobić, jest trochę inne.
Chcę wyszukać tak, że jeśli wszystkie słowa z pola title
dokumentu są obecne w moim zapytaniu, to zwrócą ten dokument.
Dla np.
przypuszczać, że jest to dokument z title : "Nike Free Sparq Mens White"
w bazie elasticsearch
teraz jeśli szukać I z query : "Nike Free Sparq 09 - Mens - White/Black/Varsity Red"
to powinien zwrócić ten dokument, ponieważ wszystkie słowa document.title nie istnieją w moim zapytaniu
ale jeśli szukać i z query : "Nike Free Lebron - Mens - White/Black"
to powinno nie zwróci dokumentu, ponieważ moja kwerenda ma słowo Sparq
brakujący
jest to rodzaj wyszukiwania odwrotnego i-operator
Czy to możliwe? Jeśli tak, to w jaki sposób?
Zobacz ten link. Znajdziesz tam odpowiedź :) http: // stackoverflow.com/questions/26001002/elastic-search-difference-between-term-match-phrase-and-query-string – betto86
dzięki za pomoc @ betto86, nie odpowiedział na moje pytanie, ale pomógł mi w bardziej powiązanych sprawach. –
Mimo, że opublikowałeś obejście problemu, chcę również poznać czystsze rozwiązanie. – akai