Elasticsearchでは、おそらくスペースを含む任意の部分文字列を検索するにはどうすればよいですか? (単語の一部を検索するだけでは十分ではありません;フィールド全体の部分文字列を検索したいのですが)text
フィールドではなく、keyword
フィールドになければならないと思います。Elasticsearchでは、どのように任意の部分文字列を検索しますか?
は、私は私のElasticsearchインデックスにわずか数千の文書があると、私は試してみてください。
"query": {
"wildcard" : { "description" : "*plan*" }
}
期待通りに動作すること - 私のようなものも含め、「計画」は説明にあるすべてのアイテムを取得します"補充"。
今、私は他の多くの可能性の中で、「カプランではない」との文書を一致させる可能性があるように...
"query": {
"wildcard" : { "description" : "*plan is*" }
}
をしたいと思います。
ワイルドカード、マッチプレフィックス、または他のどのような種類のクエリでもこれはできないようです。部分文字列を検索するにはどうすればよいですか? (SQLでは、私はちょうどdescription LIKE '%plan is%'
を行うだろう)
(私はそのようなクエリは、大規模なデータセットのために低速またはおそらく不可能であろう認識しています。)
別々の単語を検索するには、説明をトークン化する必要があります。彼らの文書を読んでください:https://www.elastic.co/guide/en/elasticsearch/reference/current/analysis-tokenizers.html – cheffe
あなたが本当に冗長な部分文字列を検索したいのであれば、ngrams :https://www.elastic.co/guide/en/elasticsearch/guide/current/_ngrams_for_partial_matching.html – cheffe
[ElasticSearchで単語の一部を検索する方法](https://stackoverflow.com/)の可能な複製質問/ 6467067 /エキスパート検索の方法の一部) – cheffe