我正在嘗試在ElasticSearch中進行關鍵字搜索。我本來用這個:ElasticSearch MultiMatch字段提升似乎不起作用?
{
"query": {
"filtered": {
"filter": {
"and": [
{
"fquery": {
"query": {
"query_string": {
"query": "Susan Sloan",
"default_operator": "AND"
}
}
}
}
]
}
}
}
然而,我的客戶希望在FIRST_NAME和last_name場比賽有超過在其他領域,如家庭成員的偏好相匹配;他們不喜歡Name =「John Smith」和Spouse =「Susan Sloan」的結果在Name =「Susan Sloan」之前顯示。所以我試着把它改成一個multimatch查詢,並且在first_name和last_name字段上有最大的提升。
{
"query": {
"filtered": {
"query": {
"bool": {
"must": [
{
"multi_match": {
"fields": [
"first_name^9",
"last_name^9",
"collection.name^7",
"collection.category.name^7",
"record_type.name^7",
"location.city.name^7",
"location.region.name^7",
"location.country.name^7",
"location.country.name^7",
"relationships.first_name^7",
"relationships.last_name^7",
"attributes.name^1",
"original_text^1"
],
"query": "Susan Sloan",
"operator": "AND",
"type": "cross_fields"
}
}
]
}
}
}
}
}
但是,這些提升似乎沒有做任何事情。儘管我有first_name =「Susan」和last_name =「Sloan」的記錄,但我得到的第一個結果是「Abel Conant」,其中「Susan」和「Sloan」出現在original_text字段中。
我補充說,但我我仍然首先獲得與original_text匹配的結果。在我原來的帖子中編輯我的查詢 – 2014-09-24 17:55:36
然後我認爲你需要單獨測試你的查詢的這一點,看看它是如何工作的大查詢。 – 2014-09-24 19:19:27