私はES 5で作業しています。C#でNest 5を使用しています。 私のESソリューションのPersonのインデックスがあります。この人は、他の人の間に名字、姓のフィールドを持っています。スコア計算でテキストの長さを無視するElasticsearch
これらのフィールドでは、「トリム」トークンフィルタと「小文字」トークンフィルタを使用する「空白」トークナイザを使用しています。 私はこれらの2つのフィールドを見て検索を実装しました。私が持っている問題はスコアの計算です。これは、問題ilustrateするだけの例である:私は「ルーカス・ゴンザレス」 で検索する場合は
をそして、私は2つの文書を持っているところ
文献1: 姓=「ルーカス」 姓=「ペレス」
文献2: 姓=「ルーカスファンホセ」 氏名=「ゴンザレス・デ・ペレス・アルメイダ」、文書2は、2項(ルーカスとゴンザレス)最初のものであっても
が最初に戻ります。 kibanaの説明で質問を見ると、文書2の方がテキストの長さが長いためスコアが低くなっています。
私がやりたいことは、最初に、より多くの用語が一致し、テキストの長さ(または他の基準)がないことを取得することです。したがって、この例では、2番目の文書には「Lucas」と「Gonzales」に一致する2つの用語があるため、最初に戻る必要があります。
これを行うには良い方法がありますか?私の人物モデルには約20のプロパティがあり、クエリを高速に実行する必要があることを考慮に入れてください。