【问题标题】:How to search Shopify products using title and vendor如何使用标题和供应商搜索 Shopify 产品
【发布时间】:2013-10-03 22:58:55
【问题描述】:

我正在使用 Shopify Storefront 搜索来生成 JSON:http://wiki.shopify.com/Storefront_search

我们的客户有一个非常大的目录,我们需要能够搜索产品标题和产品供应商字段,但排除产品正文字段。

这是一个问题的例子:

假设我们有一个名为“Galaxy S4”和“Galaxy S3”的产品,供应商为“Samsung”,而 S4 的正文以“改进广受欢迎的 Galaxy S3”开头,我们将得到以下搜索结果:

myshopify.com/search?q=samsung Galaxy s3&type=product&view=json
(在所有产品字段中搜索“samsung galaxy s3”中的所有单词)

  • “银河 S3”
  • “银河 S4”

由于短语“Galaxy S3”出现在 S4 正文中,因此它在搜索结果中列出 - 不理想。

myshopify.com/search?q=title:samsung galaxy s3 OR vendor:samsung galaxy s3&type=product&view=json
(在标题字段或供应商字段中搜索“samsung Galaxy s3”中的所有单词 - 这意味着除非所有单词都出现在任一字段中,否则不会返回任何结果。)

  • 没有结果

所以我们想要的结果是,只要搜索词中的每个单词出现在标题或商品列出的供应商中。

我希望这是有道理的,任何建议都值得赞赏。

【问题讨论】:

    标签: search shopify


    【解决方案1】:

    这是我采取的方法。我正在使用 Javascript 获取搜索查询并将其转换为标题 OR 供应商 AND 标题 OR 供应商字符串:

    var words = search_query.split(" ");
    var search_string = '';
    var i;
    for (i = 0; i < words.length; ++i) {
      if(words[i].length>0){
        if(i > 0){
          search_string += ' AND ';
        }
        search_string += 'title:'+words[i]+' OR vendor:'+words[i];
      }
    }
    

    使用上面的示例给出以下字符串:
    myshopify.com/search?q=title:samsung OR vendor:samsung AND title:galaxy OR vendor:galaxy AND title:s3 OR vendor:s3&type =product&view=json

    返回所需的搜索结果。

    注意: 在搜索词的每一侧添加星号也将返回部分词匹配。即:

    search_string += 'title:*'+words[i]+'* OR vendor:*'+words[i]+'*';
    

    将使“samsun”匹配“samsung”

    【讨论】:

    • 如果您想知道 view=json 对 Shopify 的作用,这可能会让事情变得清晰。基本上, view=thing 使 Shopify 加载不同的模板液体文件。因此,如果您输入 view=json,您需要创建一个 search.json.liquid 文件并让它输出 JSON,如 {% layout none %}{{ search.results | json }} 您也可以使用它从查询参数中加载备用模板
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-01-22
    • 2013-01-17
    • 1970-01-01
    • 1970-01-01
    • 2020-10-28
    • 2014-02-14
    • 1970-01-01
    相关资源
    最近更新 更多