私はMySqlのバックグラウンドから来ました。だから私はelasticsearchについてあまり知りませんが、うまくいっています。
これが私の要件です
すべての列に並べ替えオプションがある結果のレコードのテーブルがあります。ユーザーが複数の列に対して複数の値を選択するためのフィルター オプションがあります (たとえば、City は City1、City2、City3 から選択し、Category は Cat2、Cat22、Cat6 から選択する必要があります)。また、ユーザーがテキストを入力する検索バーもあり、一部のフィールド (都市、地域など) に全文検索が適用されます。
この画像で理解が深まります。
私が問題に直面しているのは全文検索です。いくつかのマッピングを試してみましたが、そのたびに全文検索または用語検索のいずれかで妥協する必要がありました。したがって、同じフィールドに両方の検索を適用する方法はないと思います。しかし、私が言ったように、私はelasticsearchについてあまり知りません。したがって、誰かが解決策を持っていれば、それは高く評価されます。
現在適用しているものは次のとおりです。これにより、並べ替えと用語検索が有効になりますが、全文検索は機能しません。
{
"mappings":{
"my_type":{
"properties":{
"city":{
"type":"string",
"index":"not_analyzed"
},
"category":{
"type":"string",
"index":"not_analyzed"
},
"area":{
"type":"string",
"index":"not_analyzed"
},
"zip":{
"type":"string",
"index":"not_analyzed"
},
"state":{
"type":"string",
"index":"not_analyzed"
}
}
}
}
}