2016-09-29 13 views
1

私は豊富なLucene Query Parser構文に基づいてAzure Searchを使用しています。私は "〜1"を距離のための1つの記号への追加パラメータとして定義した)。しかし、私は問題に直面しました。エンティティは正確に一致していても注文されません。例えば、 "blue〜1"は "blue"、 "blue"、 "glue"を返すか、 "P002"のような製品SKUを検索すると "P003"、 "P005"、 "P004" P002 "、" P001 "、" P006 ") 私の質問:正確な一致を持つエンティティはリスト内の最初のものでなければならない、あるいはファジー検索を使用していても1つの検索結果でなければならないということを定義する方法はありますか"〜 1 "?Azure検索 - 最初の結果または単一の結果と完全一致

答えて

3

Lucene Query syntaxを使用すると、term^2 | term~1のように個々のサブクエリをブーストすることができます。これは、「用語 'OR'用語 'と一致する文書を編集距離1で検索し、ファジーマッチ2。

search=blue^2|blue~1&queryType=full

の完全な一致は、常に文書スコアがfunction of term frequency and inverse document frequencyあるとして結果セットの最初になるという保証はありません。ファジーサブクエリだタームへの入力項を展開している場合あなたの文書コーパスでは非常にユニークですが、私の例では2つのブースティング要因が必要です。一般的に、関連性注文のためのスコアは実用的な考えではありません。詳細については、次の記事で私の答えを見てみましょう:Azure Search scoring

が、これは

+0

感謝を助けている場合、私に教えてください!それはうまくいきましたが、唯一の違いがありました。私が理解しているように、 "OR"演算子は "blue^2" OR "blue〜1" OR BOTHの結果を得ます。あなたが言ったように、完全一致が常に最初であるという保証はありません。いくつかの実験の後、私はsearch =(blue^2)|(blue〜1)&queryType = fullを実行することによって "strict or" –

関連する問題