1

以下のようなクエリがあります。

検索を行ったときに完全一致の結果しか得られない理由。例えば ​​;

「Aegli」を検索すると結果が表示されますが、「Aegli」を検索すると結果が返されません

query = {
  "query": {
    "query_string": {
      "query": "%s"%q
    }
  },
  "filter": {
    "term": {
      "has_product": 1
    }
  },
  "facets": {
    "destination": {
      "terms": {
        "field": "destination.en"
      },
      "facet_filter": {
        "term": {
          "has_product": 1
        }
      }
    },
    "hotel_class": {
      "terms": {
        "field": "hotel_class"
      },
      "facet_filter": {
        "term": {
          "has_product": 1
        }
      }
    },
    "hotel_type": {
      "terms": {
        "field": "hotel_type"
      },
      "facet_filter": {
        "term": {
          "has_product": 1
        }
      }
    }
  }
}
4

2 に答える 2

1

実際のクエリは表示されませんが*、検索語の末尾が欠落している可能性があり、クエリ文字列は次のようになります。

{"query_string": {"query": "%s*"}

例えば;

{"query_string": {"query": "Aegl*"}
于 2013-05-29T08:34:25.637 に答える
0

以下のようなマッピングを持つ

{
    "mappings": {
        "hotel": {
            'properties': {"name": {
                "type": "string",
                "search_analyzer": "str_search_analyzer",
                "index_analyzer": "str_index_analyzer"
            }
            }},

    },

    "settings": {
        "analysis": {
            "analyzer": {
                "str_search_analyzer": {
                    "tokenizer": "keyword",
                    "filter": ["lowercase"]
                },

                "str_index_analyzer": {
                    "tokenizer": "keyword",
                    "filter": ["lowercase", "substring"]
                }
            },

            "filter": {
                "substring": {
                    "type": "nGram",
                    "min_gram": 1,
                    "max_gram": 20
                }
            }
        }
    }
}

私の問題を解決しました

于 2013-05-29T20:41:40.240 に答える