自定义Plone搜索

时间:2017-01-23 16:47:58

标签: search customization plone

我在一个小内联网中使用Plone 4.3,搜索领域让我感到烦恼。 实时搜索工作正常但是当您按Enter键时,搜索会显示不同的结果。结果可以通过添加" "在文本末尾,然后它显示与livesearch相同的结果。 所以我问,是否可以自动插入" "当pushin输入密钥以获得与livesearch相同的结果时?

感谢

pd:我的英语不太好,抱歉

1 个答案:

答案 0 :(得分:6)

由于实时搜索在用户输入字母时显示结果,因此使用当前字词对所有单词开始执行查询是有意义的(例如,如果您输入了“car”,则为获得包含单词“car”但也“小心”的结果,因为我们无法判断你是否输入了字母)。 在高级搜索中,当您搜索“汽车”时,系统知道您对“汽车”的结果感兴趣,而不是“小心”。 这就是为什么2次搜索的工作方式不同。

Plone假设当我们在livesearch中按Enter键时,我们已完成输入我们正在寻找的单词,因此它会使用我们输入的确切搜索词重定向到高级搜索页。

它在searchbox viewlet中实现,您将在plone.app.layout/plone/app/layout/viewlets/searchbox.pt中找到代码,您可以看到它是一个非常基本的表单,将“SearchableText”输入提交到“@@ search”。

对我而言,最简单的自定义方法是在皮肤的某处添加一个像这样的小型JS:

$('#portal-searchbox form').submit(function(e) {
    var input = $('#portal-searchbox input[name="SearchableText"]');
    input.val(input.val() + '*');
});