我有分层分类法处理所有具有多对多关系的条目,所有条目现在都被分类到这些类别中,一切似乎都能正常工作.现在,如果没有搜索选项,目录有什么用?
以下是关于我的模型的更多细节:每个条目都有标题,描述,URL和几个社交档案:YouTube,Twitter,Flickr和其他几个.每个条目都可以附加一个徽标,以及一个隐藏的标记字段.此外,标题和描述以三种不同的语言存储.所以基本上我希望搜索结果为:
>相关(包括分类)
>可能有徽标的人
>可能是100%填写的配置文件
我已经尝试过Sphinx并且目前正在与Lucene合作,但似乎我在理论上没有得到正确的搜索.我希望填充的条目看起来应该高于其他条目,但我无法弄清楚得分.如果在整个描述中只有一个单词匹配,我不希望不相关的条目出现在顶部,因为标题更相关.
所以我的问题是 – 是否有任何书籍,技术或其他搜索引擎(如果Sphinx和Lucene不够好)你会推荐这件事吗?我不仅希望完全控制搜索结果及其排名,还能为访问者提供正确且相关的信息.
不,我不是想重建谷歌:)
谢谢 :)
解决方法
分类:
>类别在db中表示为整数键,因此每个文档都有多个类型为Number的字段“CATEGORY”的实例.例如文件:[1,2,5,10,’Wheel’] – 表示轮子属于每个类别.
不可搜索的字段(徽标,社交个人资料):
>当然,您可以在lucene的非索引字段中存储不可搜索的值.但我们已将所有与产品相关的信息存储在DB中,以避免重建Lucene的索引.所以Lucene只拥有产品ID和关键字段的索引但存储的值.
三种语言和多个领域:
>我们只有2种语言.因此,不同的产品标题可以存储在相同的Lucene文档中,并且与产品的单个ID相关(正如我在ID之前写的那样是指DB).这使您即使用户请求使用混合语言也可以搜索产品.>显然标题,标签和描述对搜索结果有不同的权重. Lucene通过分配场重来处理它.