在搜索结果中突出显示搜索词是许多网站的共同要求。Crafter CMS建立在Apache Solr之上,使得实现丰富的搜索和其他查询驱动的体验变得非常简单。
步骤0:先决条件
如果你还没有建立起你的第一个网站,你可以按照这个教程开始:Working with Your First Crafter CMS Web site.
步骤1:为文章构建内容模型
我们需要的下一件事是提出质疑的内容。支持内容创建的第一步是定义内容类型。内容类型是特定类型内容的结构定义。在我们的例子中,我们想定义一篇文章的结构。
一篇简单的文章应该有:
- 一个网址
- 标题
- 作者姓名
- 一具尸体
为了定义这一点,我们使用工匠的内容类型管理控制台。下面您可以看到包含字段及其类型的示例模型。
您可以在这里了解更多关于内容建模的信息Content Modeling in Crafter CMS.
步骤2:创建内容
既然已经定义了文章内容类型,就可以创建文章了。要创建一篇文章,请打开侧栏中的“页面”文件夹(我们将文章建模为带有网址的页面),然后右键单击主页:
步骤3:创建一个REST脚本来返回突出显示的结果
现在你有了内容,你可以写一个RESTful控制器并测试它。让我们创建一个简单的基于GET的REST控制器。
// build a query
def keyword = params.q
def queryStatement = "content-type:\"/page/article\" "
if(keyword) {
queryStatement += " AND $keyword"
}
def query = searchService.createQuery()
query.setQuery(queryStatement)
query.addParam("hl", "true")
query.addParam("hl.fl", "body_html")
query.addParam("hl.simple.pre", "<b>")
query.addParam("hl.simple.post", "</b>")
// execute the query
def executedQuery = searchService.search(query)
def matches = [:]
matches.found = executedQuery.response.numFound
matches.articles = executedQuery.response.documents
matches.highlights = executedQuery.highlighting
return matches
步骤4:执行脚本
在浏览器中,转到http://SERVER:PORT/API/search . JSON?q = AWORDATATEXISSINESS results
示例:http://localhost:8080/API/search . JSON?q =培根