tf-idf検索のフィールドノルムを無視してelasticsearchで検索を実行したいと思います。これはignoring the field norms by setting the index mappingsで行うことができます。しかし、これは索引付けの変更によって実現されると思われます。検索を変更したいだけです(他のタイプの検索の基準が必要です)。これを達成する最良の方法は何ですか?私はelasticsearch.jsを私のelasticsearchへのインターフェイスとして使用しています。elasticsearch tf-idfと検索でフィールド長のノルムを無視する
1
A
答えて
4
規範を無効にすることはできませんが、Multi Fields APIを使用して、規範が無効になっている追加フィールドを追加することができます。そうでない場合は、規範やmy_field.no_norms
上が必要な場合
PUT /my_index
{
"mappings": {
"my_type": {
"properties": {
"my_field": {
"type": "string",
"fields": {
"no_norms": {
"type": "string",
"norms": {
"enabled": false
}
}
}
}
}
}
}
}
今、あなたはmy_field
に検索することができます。新しいフィールドをすべてのドキュメントで使用できるようにするには、データを再インデックスする必要があります。マッピングに追加するだけで、ドキュメントを終了する場合は何も変更されません。
2
これは私が使い終わったアプローチです。 tf-idf(現在のelasticsearchデフォルト)を使用するのではなく、BM25を使用しました。また、フィールド長のノルムの重要性を表すパラメータ「b」を有する。 "b = 0"の場合、フィールド長のノルムは無視され、デフォルト値は0.75です。 BM25については、hereを参照してください。私elasticsearch.yml内部で私は、カスタムの類似性は、インデックス作成時に定義することができますJavaScript APIのelasticsearchを使用する人は
index :
similarity:
default:
type: BM25
b: 0.0
k1: 1.2
norm_bm25:
type: BM25
b: 0.75
k1: 1.2
を持って
client.indices.create({
index: "db",
body: {
settings: {
number_of_shards: 1,
similarity : "norm_bm25"
}
}
}
関連する問題
- 1. elasticsearch内のすべてのフィールドのノルムを無効にする
- 2. 弾性検索 - インデックス文書のフィールドを無視する
- 3. ElasticSearchカーディナリティクエリでの全長の検索
- 4. スコア計算でテキストの長さを無視するElasticsearch
- 5. MySQL - 空白を無視してフィールドを検索する
- 6. 全文検索と用語集Elasticsearchと同じフィールドで検索する
- 7. MySQL検索でハイフンを無視する
- 8. jQueryの検証と無視のフィールド
- 9. python elasticsearch dsl空白のフィールドの検索
- 10. Elasticsearch URI検索複数のフィールド
- 11. 検索と検索elasticsearchの違い
- 12. Elasticsearchの配列フィールドで検索するには?
- 13. SQLiteのアクセントを無視した検索
- 14. 春データelasticsearchを通じて特定のフィールドを検索する
- 15. Elasticsearchフィールド名の最大長
- 16. ElasticSearch:ネストされた配列のフィールドを検索する
- 17. ElasticSearchのアポストロフィを無視する方法
- 18. 検索elasticsearchフィールドにダッシュを付けたフィールド名
- 19. 検索とハイライト - タグを無視して維持する
- 20. コメントを無視した全文検索
- 21. データベースで検索中に空のテキストボックスを無視する
- 22. SQLデータベースの検索列で特殊文字を無視する
- 23. 検索でAckで文字を無視する
- 24. ElasticSearch:複数のフィールドを持つquery_stringによる全文検索
- 25. Elasticsearch検索
- 26. ElasticSearchリバースワイルドカード検索
- 27. Elasticsearch REST API:特定のフィールドのみで検索
- 28. Moshiフィールドを無視する
- 29. Rails - Elasticsearch - Chewyとの座標で検索
- 30. ElasticSearch:帯状疱疹 - フィールドは、弾性検索と正確なシングルトークン