サードパーティのインデックス検索サービスのブール検索文字列があります。Germany or (Indian, Tech*)
処理後の結果が必要です: Germany[45] or (Indian[45], Tech*[45])
。ここで、45 は検索サービスが必要とする重みです。
長い間グーグルで調べた後、結果を得ることができました: Germany[45] or (Indian[45], Tech[45]*)
. ここでは、必要ではない*
後に来ていることがわかります。[45]
出力は次のようになります: beforeGermany[45] or (Indian[45], Tech*[45])
を探します。*
[45]
コード:
preg_replace('/([a-z0-9\*\.])+(\b(?<!or|and|not))/i', '$0'."[45]", $term);
したがって、その背後にある単純な概念は、単語に重みを適用することですが、or/and/not
ブール検索のセンシティブな単語には適用しません。正規表現を微調整するか、必要な結果を得るために新しい正規表現を与えるのを手伝ってください。