2017-07-19 18 views
0

を検索結果の関連性を見つけ、私はフィールドと対応する重みを持つユーザーのアドレス情報を含むAzureの検索インデックスを持っている:Azureの検索で

weights= @{ 
           HouseNumber = '40'  
           StreetName = '36' 
           City = '30' 
           PostalCode = '29' 
           Province = '25' 
           Country = '21' 
           FSA = '20'  
           Plus4 = '16' 
           SuiteName = '12' 
           SuiteRange = '11' 
           StreetPost = '10' 
           StreetPre = '8' 
           StreetSuffix = '6' 
          } 

私は照会のためのいずれかとしてsearchmodeを使用しています。どのようにして、最大得点の記録が最も関連性の高いものであるかを決定できますか?ユーザーが住所のすべてのキーワードを入力しない場合は、レコードの関連性が異な​​る場合があります。たとえば、文字列に '1A1'のようなキーワードが含まれていれば、それは郵便番号 'A1A 1A1'の一部であるか、または住宅番号である可能性があります。これにより、両方のレコードが返されますが、スコアが異なります。私はこれをどのように修正すべきですか?

答えて

0

クエリーの用語が複数のフィールドに一致する場合(たとえば、「1A1」が「郵便番号」フィールドと「ハウスナンバー」フィールドの結果と一致する場合)、得点プロファイルはそれぞれの結果をブーストして期待どおりに機能します。

query is field-scopedのようにアプリケーションをインストルメントする必要があります。こうすることで、クエリの各部分が適切なフィールドに対して検索され、それに応じて一致が強化されます。

+0

フィールドスコープを作成するときに、フィールドが正しいフィールドにない場合に問題が発生します。これらの照会は、エンド・ユーザーによって作成され、人的エラーをコミットする可能性があります。その場合、クエリは機能しません。また、検索クエリの一部がヌルになる場合や、余分な値を持つ場合があります。例えばクエリに完全なアドレスがあるが、データベースに国が含まれる国ではない場合。さらに、クエリーがクエリーで特定のストリート名を指定していても、そのデータベースがそのフィールドを希望の結果のためのヌルとして持つ場合。 –

+0

クエリに情報がない場合(たとえば、クエリにPostalCodeが含まれていない場合)、フィールドスコープのクエリは、そのフィールドで検索が実行されないため、無関係の結果を返しません。索引内の文書に情報がない場合(たとえば、問合せにHouseNumberが含まれ、結果にHouseNumberフィールドが空の場合など)、フィールドスコープ付き問合せでは、他のフィールド(StreetName、Province、特定のHouseNumberと一致しない場合でも、類義語やファジィ検索などの機能は、人為的ミスを軽減するのに役立ちます。 – ashmaka

+0

しかし、間違ったフィールドマッピングを含む人間のエラーはどのように処理できますか? –

関連する問題