1

スキーマには次のようなフィールドがあります。

hotel_name:いくつかのホテル名

都市:いくつかの都市

county_code:DE

通り:いくつかの通り。

いくつかのホテルを見つけるための私のクエリは次のようになります。

select/fq=city:"Berlin"&fq=country_code"DE"&fq=hotel_name:"achat berlin hotel"=city:"Berlin"&fq=country_code"DE"&fq=hotel_name:"achat berlin hotel"

戻り値。hotel_nameフィールドにいくつかのトークンが含まれていることが判明した多くのホテルが含まれます。短くしたい場合は、hotel_nameファイルで一致したトークンの数ごとにこれらのドキュメントを作成します。どうすればよいですか。上部のhotel_nameフィールドに一致するトークンの最大数を保持したいと思います。

たとえば、ホテル名にachat、berlin、hotelの3つのトークンがすべて含まれている場合は、上部に表示されます。下の一致は下に表示されます。

フィールドごとに一致したトークンの数に応じて、ドキュメントにスコアを付けることは可能ですか。

4

2 に答える 2

2

まず、クエリの形式が正しくありません。パラメータを指定して でクエリを開始し、フィールド名と値の?間にを指定する必要があります。パラメータを繰り返す必要はありません。そのはず:q:country_codefq

?q=*:*&fq=city:"Berlin"&fq=country_code:"DE"&fq=hotel_name:"achat berlin hotel"

、、およびこれらのパラメータはhotel_name、に従ってトークン化および分析され、で指定したクエリ スロップに応じて正確に一致する場合と一致しない場合があります。country_codecityfqschema.xmlsolrconfig.xml

フィールドごとに一致したトークンの数に応じてドキュメントをスコアリングすることは可能ですか?

solr でのスコアリングはこのリテラルではないため、正確ではありません。

たとえば、ホテル名に achat、berlin、hotel の 3 つのトークンがすべて含まれている場合は、一番上に表示されます。下の一致が下に表示されます。

クエリをフレーズ (s で引用されています) として提供した"ので、solr はデフォルトでその正確なフレーズを見つけ、関連するスコアを与えます。でクエリ スロップ(qsパラメータ) が設定されている場合solrconfig.xml、不適切なクエリからのスコアも追加されます。おそらく本当に欲しいのは次のとおりです。

hotel_name:achat berlin hotel

非句クエリです。

于 2012-06-08T13:46:00.630 に答える
0

schema.xml のフィールド「hotel_name」の型は何ですか?

また、もう試しましたか?デフォルトでは、Solr は調整係数を考慮します。

「クエリに複数の用語がある場合、一致する用語が多いほどスコアが高くなります」。だから、あなたの場合はすでに起こっていると思います。

于 2012-06-08T13:39:15.327 に答える