0

複数形/単数形の用語を検索するためにelasticsearch(pyes経由でアクセス)を取得する方法がわからないようです。たとえば、モンキーズに入るとき、ベルトのある結果を取り戻したいと思います。Elasticsearchが単数形/複数形の一致を返さないことを確認しましたが、意味をなさないようです。ここにいくつかのカールステートメントがあります

curl -XDELETE localhost:9200/myindex

curl -XPOST localhost:9200/myindex -d '
{"index": 
  { "number_of_shards": 1,
    "analysis": {
       "filter": {
                "myfilter": {
                    "type" : "porter_stem",
                    "language" : "English"
                }
                 },
       "analyzer": {
             "default" : {                    
                 "tokenizer" : "nGram",
                 "filter" : ["lowercase", "myfilter"]
              },
             "index_analyzer" : {                    
                 "tokenizer" : "nGram",
                 "filter" : ["lowercase", "myfilter"]
              },
              "search_analyzer" : {                                                    
                  "tokenizer" : "nGram",
                  "filter" : ["lowercase", "myfilter"]
              }
        }
     }
  }
}
}'

curl -XPUT localhost:9200/myindex/mytype/_mapping -d '{
    "tweet" : {
        "date_formats" : ["yyyy-MM-dd", "dd-MM-yyyy"],
        "properties" : {
            "user": {"type":"string"},
            "post_date": {"type": "date"},
            "message" : {"type" : "string", "analyzer": "search_analyzer"}
        }
    }}'

curl -XPUT 'http://localhost:9200/myindex/mytype/1' -d '{
"user" : "kimchy",
"post_date" : "2009-11-15T14:12:12",
"message" : "belt knife is a cool thing"
}'

curl -XPUT 'http://localhost:9200/myindex/mytype/2' -d '{
"user" : "alwild",
"post_date" : "2009-11-15T14:12:12",
"message" : "second message with nothing else"
}'

curl -XGET localhost:9200/myindex/mytype/_search?q=message:belts

ベルトを検索するといくつかの結果が得られるようになりました...しかし、今では結果が多すぎます。「ベルト」が含まれているエントリを1つだけ返すには、どうすればよいですか。

4

2 に答える 2

3

デフォルトでは、クエリは_all標準アナライザーを使用するフィールドに対して実行されるため、ステミングはありません。などのクエリで検索してみてくださいname:Monkies。本番環境では、matchクエリを使用します。これにより、クエリとフィールドマッピングの間でアナライザが正しく接続されます。

ちなみに、Elasticsearchを使用すると、さまざまな分析設定を非常に簡単に比較できます。比較:

http://localhost:9200/_analyze?text=Monkies&analyzer=standard

vs

http://localhost:9200/_analyze?text=Monkies&analyzer=snowball
于 2013-02-15T07:35:21.853 に答える
0

これを、このマッピングを使用してインデックスを作成し、一部のデータにインデックスを付け、予期しない結果を示す検索を実行するいくつかのcurl呼び出しに減らすことができますか?

于 2013-02-14T22:48:02.280 に答える