SQLの「Like」ステートメントを使用してデータをクエリすると、部分的にしか一致していなくてもデータが返されます。たとえば、食べ物を検索していて、SQLを使用しているときにデータベースに「レーズン」というアイテムがある場合、検索に「ライ」しか含まれていなくても、クエリは「レーズン」を返します。Elasticsearchでは、名前全体(この場合は「レーズン」)が指定されていない限り、クエリはレコードを返しません。ElasticsearchをSQLステートメントと同様に動作させるにはどうすればよいですか?Rails3.1.1とPostgreSQLを使用しています。ありがとう!
質問する
2975 次
1 に答える
5
Elasticsearch のモデルのインデックスを作成するときに、要件を満たすインデックスでトークナイザーを使用します。為に。例えば
tokenizer: {
:name_tokenizer => {type: "edgeNGram", max_gram: 100, min_gram: 3, side: "front"}
}
これにより、フィールドの 3 から 100 までのサイズのトークンが作成され、サイドがフロントとして指定されるため、最初からチェックされます。ここから詳細を取得できますhttp://www.slideshare.net/clintongormley/terms-of-endearment-the-elasticsearch-query-dsl-explained
于 2012-05-18T07:10:43.453 に答える