Я работаю в поисковой системе с Elasticsearch, у меня есть ключевые слова и исключенные ключевые слова.
Я хотел бы использовать кавычки, И и ИЛИ в моих двух входах для расширенного поиска.
Вот что я пытаюсь:
Ключевые слова:
"foo bar" AND lorem OR ipsum
{
"body": {
"query": {
"bool": {
"should": [
{
"bool": {
"must": [
{
"multi_match": {
"query": "foo bar",
"type": "phrase",
"fields": [
"content",
"title"
]
}
},
{
"multi_match": {
"query": "lorem",
"fields": [
"content",
"title"
]
}
}
]
}
},
{
"bool": {
"must": [
{
"multi_match": {
"query": "ipsum",
"fields": [
"content",
"title"
]
}
}
]
}
}
]
}
}
}
}
Результаты:
"lorem foo bar" => true
"foo bar" => false
"ipsum foo bar" => true
Это работает, но это правильный путь?
Для исключенных ключевых слов, я не знаю, как добавить в это с той же системой.
Пример того, что я ожидаю:
исключенных ключевых слов:
"test AND test2 OR test3"
"lorem foo bar" => true
"lorem foo bar test" => true
"lorem foo bar test3" => false
"test lorem foo bar test2" => false