1

私の目標は、ブーストをフィールド「name」に適用することです(以下の例を参照)が、「john」を検索するときに 2 つの問題があります。

  1. {name: "dany", message: "hi bob"}名前が「dany」の場合も検索が一致し、
  2. 検索でメッセージよりも名前が優先されません (name="john" を含む行が一番上にあるはずです)

要点はhttps://gist.github.com/tomaspet262/5535774にあります

(stackoverflow のフォーム送信が「あなたの投稿には、適切にフォーマットされたコードとして適切にフォーマットされていないコードが含まれているようです」が返されたため)。

4

2 に答える 2

0

この場合にこれが関係するかどうかはわかりませんが、このような少量のデータでテストするときは、分散計算による問題がないことを確認するために、デフォルト設定ではなく常に 1 つのシャードを使用します。

于 2013-05-08T07:04:52.493 に答える
0

インデックス時間ブースティングの代わりにクエリ時間ブースティングを使用することをお勧めします。

#DELETE
curl -XDELETE 'http://localhost:9200/test'
echo
# CREATE
curl -XPUT 'http://localhost:9200/test?pretty=1' -d '{
    "settings": {
       "analysis" : {
            "analyzer" : {
               "my_analyz_1" : {
                    "filter" : [
                        "standard",
                        "lowercase",
                        "asciifolding"
                    ],
                    "type" : "custom",
                    "tokenizer" : "standard"
                }
            }
        }
    }
}'
echo
# DEFINE
curl -XPUT 'http://localhost:9200/test/posts/_mapping?pretty=1' -d '{
    "posts" : {
        "properties" : {
            "name" : {
              "type" : "string",
              "analyzer" : "my_analyz_1"
            },
            "message" : {
              "type" : "string",
              "analyzer" : "my_analyz_1"
            }
        }
    }
}'
echo
# INSERT
curl localhost:9200/test/posts/1 -d '{name: "john", message: "hi john"}'
curl localhost:9200/test/posts/2 -d '{name: "bob", message: "hi john, how are you?"}'
curl localhost:9200/test/posts/3 -d '{name: "john", message: "bob?"}'
curl localhost:9200/test/posts/4 -d '{name: "dany", message: "hi bob"}'
curl localhost:9200/test/posts/5 -d '{name: "dany", message: "hi john"}'
echo
# REFRESH
curl -XPOST localhost:9200/test/_refresh
echo
# SEARCH
curl "localhost:9200/test/posts/_search?pretty=1" -d '{
    "query": {
        "multi_match": {
            "query": "john",
            "fields": ["name^2", "message"]
        }
    }
}'
于 2013-05-07T21:59:56.003 に答える