我有一个带有title
字段的索引。其中包含以下文字:贝克斯菲尔德纪念医院。
我希望能够通过部分字符串进行搜索。以下查询有效:
search=*&$filter=search.ismatch('bakersfield','title')
search=*&$filter=search.ismatch('memorial','title')
但是,如果我要搜索单词的部分字符串,则不会。例如:
search=*&$filter=search.ismatch('baker','title')
那我该如何搜索部分单词?
答案 0 :(得分:1)
在您的示例中,您使用search.ismatch()而不指定queryType。这意味着它将默认为简单模式,该模式仅支持后缀通配符。
匹配“中心”和“中心”的示例:
search=*&$filter=search.ismatch('medical cent*','title','full','all')
如上面的通配符链接中所述,您不能使用*开头通配符查询,但可以在 full 模式下使用正则表达式语法。这应该可以很好地转化为您的用例。
匹配“ senter”和“ center”的示例:
search=*&$filter=search.ismatch('/.*enter/','title','full','all')
答案 1 :(得分:0)
回答我自己的问题,以防有人需要。
您可以像这样使用*
运算符:
search=*&$filter=search.ismatch('baker*','title')
但是,这仅适用于开头搜索。对于包含或结尾不起作用。例如,以下操作无效:
search=*&$filter=search.ismatch('*field','title')