【问题标题】:Extending Orchard Search and Indexing扩展果园搜索和索引
【发布时间】:2012-02-19 12:45:55
【问题描述】:

我们需要为用户提供搜索选项,以根据特定字段值查找内容。

我们正在为客户开发培训课程模块,但标准搜索会在任何索引字段中查找文本。我们希望允许用户根据针对特定字段(即课程类型、地点、价格、日期)的搜索来查找课程。

我们已扩展搜索以检查特定字段,但无法弄清楚如何获取搜索表单作为 GET 传递的 URL 参数。

Orchard 将 URL 参数放在哪里?

另外,我们是否遗漏了什么,Orchard 是否有一种我们尚未意识到的方式已经支持这一点?

【问题讨论】:

  • 你的意思是你想要像Search for location=xxx这样的搜索??因为当您制作字段时,您可以选择它们是否可索引。只有我不知道您将如何指定在特定字段中进行搜索。
  • 嗨@gideon,没错,我们希望能够将各个字段分开,因此搜索 URL 可能是 search?location=Ohio&Type=Cooking 但我们没有想要在课程描述中提及俄亥俄州的任何烹饪课程(例如“我们在俄亥俄州也有一所学校”),我们想要那些专门将其位置设置为俄亥俄州的课程.
  • 也许您可以查看orchardgallery.codeplex.com 该网站确实有一个类似于您正在寻找的类别搜索 (gallery.orchardproject.net/List/Modules)
  • 感谢@gideon,我会看看那个模块,仅供参考,我们在我们正在使用的搜索模块中找到了要更新的代码。 SearchControl.cs 文件中有一个 ActionResult 方法,我们在其中添加了额外的预期参数。 MVC 自动将 URL 参数映射到这些新参数(只要我们使用相同的名称),因此这至少意味着我们可以将这些传递给我们修改后的搜索函数。现在我们要做的就是对他们做点什么:-)

标签: search indexing orchardcms


【解决方案1】:

我建议您复制部分搜索模块,更具体地说是控制器和视图,然后对其进行修改以满足您的特定需求。我看到您实际上是在修改原始模块,但从长远来看这可能是一个问题,例如,如果我们开始更新模块,您可能会丢失更改或必须将它们重新应用到代码库。最后,您将定位一个 MySiteName.Search 模块。并且还可以添加自定义路由、自定义设置。

附带说明,搜索 API 非常强大,您甚至可以使用它进行分面搜索,或搜索继承的分类术语、标签、全文、范围......拥有自己的控制器代码可以让您使用所有这些功能都很容易。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-09-12
    • 2017-03-03
    • 1970-01-01
    • 2016-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多