如何搜索标题以特定短语开头的页面?



我有点困惑,我应该如何把CQL搜索。基本上,我想抓取所有以特定顺序的特定字符串开头的标题的页面。例子:

搜索"测试页";应该返回:

  • 测试页面
  • 测试页(1)
  • 再次测试页

不应该返回:

测试
  • 页面测试
  • (1)测试页
  • 再次测试页

我尝试了很多搜索,比如:

  • title = "Test Page*"
  • title ~ "Test Page*"
  • title ~ "Test" AND title ~ "Page*"

但是它们都不完全符合我的需要。我需要更改什么以匹配标题的开头?

或者,如果不可能在标题的开头搜索单词,那么如果我可以搜索像"Test Page(*)&"这样的内容,其中*将匹配任何字符,我会很高兴。那么它应该返回如下内容:

  • 测试页(1)
  • 测试页(2)

但不是这个:

  • 测试页面
  • 再次测试页
  • 测试
  • 页面测试
  • (1)测试页
  • 再次测试页

对于包含精确字符串或短语的CQL搜索,应该使用CONTAINS操作符并用双引号将短语括起来,就像在第二个示例中所做的那样:

title ~ "Test Page*"

CQL还支持单字符通配符搜索符号(?),所以对于您请求的"替代"搜索,表单应该是:

title = "Test Page(?)"

虽然在反斜杠之间允许正则表达式语法,但我没有看到任何证据表明可以通过元素的开始(^)或结束($)进行选择。但是,使用带有多字符通配符的equas操作符应该会得到相同的结果:

title = "Test Page*"

所以,根据所有可用的文档,包括CQL所基于的Apache Lucene文档,你做得对。你说

'它们都不完全符合我的需要'

你能提供更多关于为什么这些查询不正确的信息吗?

相关内容

最新更新