elastsearch-railsジェムを使用して、現在私は持っています:
response = Employee.search(
size: 20,
query: {
multi_match: {
"query" => search_terms,
"type" => "cross_fields",
"fields" => ["first_name^3", "last_name^3", "full_name^4", "email", "job_description^5", "job_title^5"]
}
}
)
複数一致 / cross_fields 検索を実行することで、従業員データベースの列に 1 回だけ表示される用語を検索すると (たとえば、"John" は、job_description や job_title ではなく、first_name にのみ表示される)、結果が返されません。用語 (たとえば、「弁護士」などの役職が job_description や job_title などの複数のフィールドに表示される場合)、結果が返されます。どうしてこれなの?これは直感に反するようです。