Elasticsearch - Как я могу получить только "английский" результаты только при поиске "английских" слов? - PullRequest
0 голосов
/ 08 ноября 2019

Мой сайт имеет один индекс с языковым детектором для переключения между испанским или английским языком. Я хочу иметь возможность искать на английском и получать только результаты на английском языке. И то же самое для поиска по-испански. Код, который обрабатывает отображение / перевод, можно найти здесь: https://github.com/Automattic/wpes-lib

Я новичок в Elasticsearch, но учусь около месяца. Любая помощь в этом очень приветствуется.

Я пытался (ниже я использую синтаксис PHP):

"must_not" => [
    "match" => [
        "query" => $query,
        "field" => "title.es"       
    ]
],

и:

"must_not" => [
    "match" => [
        "title.es" => [
          "query" => $query
        ]
     ]
],

Полный запрос ниже:

$es_query_args['query']['function_score']['query']['bool'] = [
    "must" => [
      "multi_match" => [
        "query" => $query,
        "type" => "best_fields",
        "fields" => [
          "meta.search_content.value",
          "taxonomy.search_tag.name",
          "title"
        ],
        "fuzziness" => "auto",
        "operator" => "and",
        "tie_breaker" => 0.3
      ],
    ],
     "must_not" => [
       "match" => [
         "query" => $query,
         "fields" => ["title.es"]     
       ]
     ],
    "should" => [
      "multi_match" => [
        "query" => $query,
        "fields" => [
          "title^3", 
          "taxonomy.search_tag.name^3",
          "meta.search_content.value",
        ],
        "fuzziness" => "auto",
        "type" => "phrase",
        "slop" => 5,
      ],
    ],
  ];

без удачи: (

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...