搜索技术建议

前端之家收集整理的这篇文章主要介绍了搜索技术建议前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
这更像是一个理论问题,而不是实践.我正在开发一个项目,这是一个非常简单的链接目录.整个模型类似于Dmoz或Yahoo目录,除了每个条目都有一些额外的属性.

我有分层分类法处理所有具有多对多关系的条目,所有条目现在都被分类到这些类别中,一切似乎都能正常工作.现在,如果没有搜索选项,目录有什么用?

以下是关于我的模型的更多细节:每个条目都有标题,描述,URL和几个社交档案:YouTube,Twitter,Flickr和其他几个.每个条目都可以附加一个徽标,以及一个隐藏的标记字段.此外,标题和描述以三种不同的语言存储.所以基本上我希望搜索结果为:

>相关(包括分类)
>可能有徽标的人
>可能是100%填写的配置文件

我已经尝试过Sphinx并且目前正在与Lucene合作,但似乎我在理论上没有得到正确的搜索.我希望填充的条目看起来应该高于其他条目,但我无法弄清楚得分.如果在整个描述中只有一个单词匹配,我不希望不相关的条目出现在顶部,因为标题更相关.

所以我的问题是 – 是否有任何书籍,技术或其他搜索引擎(如果Sphinx和Lucene不够好)你会推荐这件事吗?我不仅希望完全控制搜索结果及其排名,还能为访问者提供正确且相关的信息.

文章链接也很受欢迎!

不,我不是想重建谷歌:)

谢谢 :)

解决方法

我很确定Lucene就足够了.我们已经解决了类似的任务并且做得很好.以下是一些提示,我可以建议您回顾一下Lucene.Net上的项目.

分类

>类别在db中表示为整数键,因此每个文档都有多个类型为Number的字段“CATEGORY”的实例.例如文件:[1,2,5,10,’Wheel’] – 表示轮子属于每个类别.

不可搜索的字段(徽标,社交个人资料):

>当然,您可以在lucene的非索引字段中存储不可搜索的值.但我们已将所有与产品相关的信息存储在DB中,以避免重建Lucene的索引.所以Lucene只拥有产品ID和关键字段的索引但存储的值.

三种语言和多个领域:

>我们只有2种语言.因此,不同的产品标题可以存储在相同的Lucene文档中,并且与产品的单个ID相关(正如我在ID之前写的那样是指DB).这使您即使用户请求使用混合语言也可以搜索产品.>显然标题,标签和描述对搜索结果有不同的权重. Lucene通过分配场重来处理它.

猜你在找的HTML相关文章