【问题标题】:how to implement color search with sphinx?如何用 sphinx 实现颜色搜索?
【发布时间】:2010-12-25 17:13:39
【问题描述】:

使用 mysql 按主色搜索照片非常简单。假设照片的主要颜色的 r,g,b 值已经存储在数据库中,这可以通过以下方式实现:

SELECT * FROM colors
WHERE    ABS(dominant_r - :r) < :threshold
AND      ABS(dominant_g - :g) < :threshold
AND      ABS(dominant_b - :b) < :threshold

我想知道,是否有可能将颜色存储在 sphinx 中并使用 sphinx 搜索引擎执行查询?

谢谢!

【问题讨论】:

    标签: search colors search-engine sphinx


    【解决方案1】:

    我已经用 sphinx 搜索了颜色。它在那里http://code.google.com/p/hppg/。这个怎么运作? 非常简单,对于每种颜色,我将其主要颜色存储在数据库中。数据库表,witch用于sphinx索引,列名为“colors”,其内容填写如下:

    /**
         * This part was changed based on formula 
         * 
         * It fits here better than algorithm
         * 
         * http://en.wikipedia.org/wiki/Tag_cloud
         * 15400 is number of maximum matches based on indexed thumbnail size 120x130 px.
         * */
    
       $max = 15400;
       $min = 25;
       $rmax = 50;
       $rmin = 1;
    
       $colorIndex = array();
       foreach ($colorsMaximumImage as $color)
       {
           $colorIndexString = trim(str_repeat(' pld'.$color['pallete_id'],round((($rmin*($color['count']-25))/($max-$min))*100)));
           if ($colorIndexString != '')
           $colorIndex[] = $colorIndexString;
       }
    

    我在这里使用了标记公式,以避免非常大的索引。计数是匹配自定义托盘项目的次数。它工作得很好,可以在项目主页上找到一些实时站点的示例。这样我们可以同时按颜色和关键字搜索:)。目前我仍在尝试获得最好的结果...

    【讨论】:

    • 我的方法是使用 imagemagick 生成一个直方图并提取 10 个最常见的颜色和 10 个最主要的颜色并将它们存储在 mysql 中。所以我必须为 sphinx 中的每张照片索引 10 行——这种方法的索引非常大。例如,您可以在photo.clipdealer.com/media/499332 上通过单击信息框中的“色标”之一来查看它。无论如何,感谢您的回答,我给它一个“是”,因为它对我很有帮助。非常感谢!
    • 还有一件事。 Sphinx 从 0.9.9 开始支持 select like 过滤。所以它完全适合您的需求。
    • 我现在正在研究类似问题的解决方案。虽然这两种方法都有帮助,但我想知道是否有人想出了一种方法来存储每条记录上的所有颜色信息(正如 Remdex 所做的那样),而不必使用预定义的调色板。我认为 Remdex 的解决方案只允许通过完全匹配进行搜索是否正确?
    • 关于首先我认为你可以使用 pdl___ 并通过它的密度重复它。当然这种方式文本索引可以显着增长,只需​​要进行实验以获得良好的结果。在我的方法中,搜索不必完全匹配。我刚刚使用 sphinx 扩展搜索在画廊代码中实现了它。
    猜你喜欢
    • 2011-01-02
    • 1970-01-01
    • 1970-01-01
    • 2011-06-16
    • 2016-08-26
    • 1970-01-01
    • 1970-01-01
    • 2014-04-14
    • 2018-07-15
    相关资源
    最近更新 更多