我有一个用于第三方索引搜索服务的布尔搜索字符串:Germany or (Indian, Tech*)
我希望我的结果在处理后:Germany[45] or (Indian[45], Tech*[45])
. 这里 45 是搜索服务所需的权重。
在谷歌搜索了很长时间后,我得到了结果:Germany[45] or (Indian[45], Tech[45]*)
. 在这里你可以看到*
已经来了,[45]
这不是必需的。
输出应该是:Germany[45] or (Indian[45], Tech*[45])
,寻找*
之前[45]
。
代码:
preg_replace('/([a-z0-9\*\.])+(\b(?<!or|and|not))/i', '$0'."[45]", $term);
所以它背后的简单概念是对单词应用权重,而不是对or/and/not
等布尔搜索敏感词。请帮助我微调正则表达式或提供新的正则表达式以获得所需的结果。