如何使用标题和供应商搜索Shopify产品

时间:2013-10-03 22:58:55

标签: search shopify

我正在使用Shopify店面搜索来生成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”中的所有单词)

  • “Galaxy S3”
  • “Galaxy S4”

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

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

  • 没有结果

因此,我们希望的结果是,只要搜索词中的每个单词都出现在标题中,或者列出该项目的供应商。

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

1 个答案:

答案 0 :(得分:2)

这是我采取的方法。我正在使用Javascript来获取搜索查询并将其转换为标题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或供应商:samsung和标题:galaxy或供应商:galaxy AND title:s3 OR vendor:s3&amp; type = product&amp; view = json

返回所需的搜索结果。

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

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

将使“samsun”匹配“三星”