1

MySqlと同等のelasticsearchクエリが必要です。私のSQLクエリ:

SELECT DISTINCT t.product_id AS id 
FROM tbl_sup_price t 
    INNER JOIN product a ON t.product_id = a.product_id 
    INNER JOIN a_product_to_category a2 ON a.product_id = a2.product_id 
    INNER JOIN a_category_description a3 ON a2.category_id = a3.category_id 
    INNER JOIN tbl_sup t2 ON t.sup_id = t2.id AND (t2.status = 1) 
WHERE ((t.quantity - t.reserved) > 0 AND t.is_active = 1) 
    AND (a.model_name LIKE '%word1%' OR t.name LIKE '%word1%') 
    AND (a.model_name LIKE '%word2%' OR t.name LIKE '%word2%') 
ORDER BY a.price ASC

多くのオプションを試しましたが、必要なものが見つかりませんでした。誰かがこの問題を解決する方法を教えてもらえますか?

例として:

{
  "query": {
    "filtered": {
      "query": {
        "match_all": {}
      },
      "filter": {
        "and": [
          {
            "or": [
              {
                "fuzzy": {
                  "model_name": "nokian"
                }
              },
              {
                "fuzzy": {
                  "product_name": "nokian"
                }
              }
            ]
          },
          {
            "or": [
              {
                "text": {
                  "model_name": "195"
                }
              },
              {
                "text": {
                  "product_name": "195"
                }
              }
            ]
          }
        ]
      }
    }
  }
}

しかし、このクエリを実行すると、エラーが発生します:

Parse Failure [Failed to parse source [{"query":{"filtered":{"query":{"match_all":{}},"filter":{"and":[{"or":[{"fuzzy":{"model_name":"nokian"}},{"fuzzy":{"product_name":"nokian"}}]},{"or":[{"text":{"model_name":"195"}},{"text":{"product_name":"195"}}]}]}}}}]]]; nested: QueryParsingException[[index] No filter registered for [fuzzy]]; }]

単語が数値の場合 - 検索タイプはテキストでなければなりません。そうでない場合 - ファジー

4

1 に答える 1