6

我正在使用此处列出的代码:

http://msdn.microsoft.com/en-us/library/ms553069.aspx

在设置属性后添加了附加行作为对 .update() 的调用以保存更改,但即使权重为 10,000,我的属性的搜索结果仍位于底部,尤其是在标题下方。为了使权重传播,是否还需要做一些其他的事情?

我还尝试将标题、作者和文件名设置为 0,将属性(关键字)设置为 9999,并将属性的长度规范化设置为 0。结果略有变化,但使用与属性匹配的关键字进行搜索仍然不符合。

所有测试都在之后完全爬网完成,重置 IIS,并回收共享服务应用程序池。

我可以给你任何你可能要求的额外信息。

谢谢,斯特凡

更新 (6-19-09):为此增加了 500 的赏金。在线提供的有关此功能的信息很少,显然一个好的答案将为互联网社区提供巨大的服务。它可能也可以为我节省一个星期:)

更新 2 (6-19-09):架构本质上是这样的:OOB 共享点文档内容类型,添加了文本字段“关键字”。附加到 ows_keywords(Text) 的托管属性。

更新 3 (6-19-09):Codeplex 的 Sharepoint Search Bench 对搜索有很大帮助。

更新 4 (6-19-09):我已经找到了一个解决方案,该解决方案涉及创建许多(现在 5 个)具有相同爬网属性的更多托管属性。每个权重都设置为不寻常的值(例如 9999)。这些足以将关键字结果提升到顶部。虽然不太理想。仍在寻找解决方案。

更新 4 中的解决方案是我最终得到的。正如 Lars 评论的那样,搜索不是很灵活,尽管对属性权重进行了调整,但效果并不总是您所期望的。

4

4 回答 4

1

更改属性的权重不需要重新抓取,只需重置搜索服务。

在网上找到了这个:

除了设置托管属性的权重之外,映射到托管属性的已爬网属性还必须启用“在搜索索引中包含此属性的值”复选框。

编辑:在这里找到它:Larry Kuhn 的博客

于 2009-06-19T07:11:32.943 回答
1

您是否尝试过仅使用 0 到 1 范围内的权重?例如,将所有其他属性权重设置为 0.2,并将关键字设置为 0.8。在这些方面,我在使用 Lucene 时遇到了一些麻烦,而且与数量级有关。

此外,如果它从未在结果中添加该属性字段中的匹配项(尝试添加xyzzy关键字或其他内容并搜索它),那么它可能根本与权重无关,而是与是否考虑关键字进行搜索有关。

于 2009-06-19T09:09:28.773 回答
1

当您搜索属性中存在的关键字时,该属性只会对排名分数产生积极影响。对于任何其他查询,权重都没有任何影响!例如,在搜索关键字“SharePoint Search”时,标题属性权重确保标题中包含这些关键字的文档的排名得分得到提升。但是标题中没有任何这些关键字的文档不会受到标题权重的提升。这适用于文本类型的所有托管属性。

于 2009-06-19T15:30:35.760 回答
0

假设 .update() 调用是在 main() 结束时完成的,我是否正确?如果没有,请尝试,如果是,请确保程序正在运行。我还假设 strPropertyName 是您想要的。除此之外,我真的帮不了你。

于 2009-06-19T06:59:40.797 回答