、Standard Analyzer
は十分である。また、それはElasticSearchでデフォルトアナライザであり、それはgrammar based tokenization
を提供たとえば: "The 2 QUICK Brown-Foxes jumped over the lazy dog's bone."
は[ the, 2, quick, brown, foxes, jumped, over, the, lazy, dog's, bone ]
にトークン化されます
あなたの場合は、。。。ドメイン名は[techtarget, americanexpress, theamericanexpress, thefacebook]
として用語のリストにトークン化されている。
facebook
のクエリ検索が何も返さdoesnotなぜ?
辞書にはfacebook
という用語が格納されていないため、検索結果はデータを返しません。何が起こっているのは、ESが辞書内に検索用語facebook
を見つけようとしますが、辞書にはthefacebook
しか含まれていないため、検索結果は返されません。
ソリューション:
thefacebook
で検索用語facebook
を一致させるために、あなたはすなわち.*facebook
がthefacebook
に一致する検索語周りワイルドカードをラップする必要があります。ただし、regexを使用すると、パフォーマンスのオーバーヘッドが発生することにご注意ください。
その他の回避策は、synonymsを使用することです。シノニムとは、検索用語に同義語(代替検索語のリスト)を指定できることです。例えば"facebook, thefacebook, facebooksocial, fb, fbook"
これらのシノニムを使用すると、これらのシノニムから検索語を提供できます。これは、これらのシノニムと一致します。つまり、検索語句がfacebook
で、ドメインがthefacebook
として保存されている場合、検索は一致します。
また、優先順位付けのためには、まずscoring ESでの仕事とは、あなたがBoosting使用することができる方法を理解する必要があります。