EStermの大文字と小文字
1869 ワード
EStermの大文字と小文字
に質問
同僚はES検索は、検索できるものもあれば、データがあると確信しているものもありますが、検索できません.
問題を解決する
問題を再現
検索するインデックスとフィールド、および検索パラメータを同僚に要求し、同僚が正しい姿勢を使用していることを確認します.結果はやはり同僚が言ったように、問題が再現され、一致しなかった.
mappingマッピングの表示と_analyze APIテスト
このフィールドはtypeがtext分詞方式でカスタム正規分詞器に「,」(カンマ)で分割されていることが分かった.使用_analyze分詞テストデータはすべて正常ですGET picture/_analyze
{
"text": " , ,2014,1-5W",
"field": "tag3"
}
結果{
"tokens": [
{
"token": " ",
"start_offset": 0,
"end_offset": 2,
"type": "word",
"position": 0
},
{
"token": " ",
"start_offset": 3,
"end_offset": 5,
"type": "word",
"position": 1
},
{
"token": "2014",
"start_offset": 6,
"end_offset": 10,
"type": "word",
"position": 2
},
{
"token": "1-5w",// W
"start_offset": 11,
"end_offset": 15,
"type": "word",
"position": 3
}
]
}
位置決めの問題
ドキュメントの保存はこちらがすべて正常で、それではクエリーの时の姿势に问题があって、DSLクエリーの文を分析して使用するtermの行うマッチングを発见して、上の再现の问题の中ですでに中国语のデータが正常であることを発见して、アルファベットのが问题があります.termマッチングが最小の単位ではマッチング語は処理されず、matchマッチングを試してデータを正常に検索できます.matchはマッチング語を処理します.例えば、分詞、大文字が小文字になります.比較したところ,やはり文書内には小文字が格納されているが,マッチング語は大文字であるためtermではデータにマッチングできないことが分かった.
結論
termは検索語を処理せず,どのように入力すればよいかを扱うので,termを用いてマッチングする場合はターゲットフィールドに分詞器が使用されているか,大文字と小文字に注意する.
問題を再現
検索するインデックスとフィールド、および検索パラメータを同僚に要求し、同僚が正しい姿勢を使用していることを確認します.結果はやはり同僚が言ったように、問題が再現され、一致しなかった.
mappingマッピングの表示と_analyze APIテスト
このフィールドはtypeがtext分詞方式でカスタム正規分詞器に「,」(カンマ)で分割されていることが分かった.使用_analyze分詞テストデータはすべて正常です
GET picture/_analyze
{
"text": " , ,2014,1-5W",
"field": "tag3"
}
結果
{
"tokens": [
{
"token": " ",
"start_offset": 0,
"end_offset": 2,
"type": "word",
"position": 0
},
{
"token": " ",
"start_offset": 3,
"end_offset": 5,
"type": "word",
"position": 1
},
{
"token": "2014",
"start_offset": 6,
"end_offset": 10,
"type": "word",
"position": 2
},
{
"token": "1-5w",// W
"start_offset": 11,
"end_offset": 15,
"type": "word",
"position": 3
}
]
}
位置決めの問題
ドキュメントの保存はこちらがすべて正常で、それではクエリーの时の姿势に问题があって、DSLクエリーの文を分析して使用するtermの行うマッチングを発见して、上の再现の问题の中ですでに中国语のデータが正常であることを発见して、アルファベットのが问题があります.termマッチングが最小の単位ではマッチング語は処理されず、matchマッチングを試してデータを正常に検索できます.matchはマッチング語を処理します.例えば、分詞、大文字が小文字になります.比較したところ,やはり文書内には小文字が格納されているが,マッチング語は大文字であるためtermではデータにマッチングできないことが分かった.