gpt4 book ai didi

elasticsearch - Elasticsearch -查询仅搜索5个字符

转载 作者:行者123 更新时间:2023-12-02 22:34:10 27 4
gpt4 key购买 nike

我有一个问题,无论我在查询中发送什么值,在搜索到第五个字符后都不会得到任何结果。
例:

  • {“match”:{“name”:“benjami”}}-将不返回任何结果
  • {“match”:{“name”:“benja”}}-返回名称为Benja的结果...
  • {“match”:{“name”:“benjamin”}}-返回名称为Benjamin
  • 的结果

    指数:
    “名称” : {
    “type”:“string”,
    “analyzer”:“edge_ngram_analyzer”
    }
    设置:
    "analyzer": {
    "edge_ngram_analyzer":{
    "type": "custom", "tokenizer": "standard", "filter": ["lowercase","edge_ngram_filter"]}},
    "filter": {
    "edge_ngram_filter":{
    "type": "edge_ngram", "min_gram": 1, "max_gram": 40}}
    使用术语 vector ,我发现该字段已正确索引。问题出在某个地方, flex 搜索无法搜索我的完整查询值。有谁知道为什么会这样吗?非常感谢您的帮助,我使用的是 flex 搜索5.6版!
    指数
    "properties" : { "searchid": {"type": "string", "index": "not_analyzed"},
    "otherId": {"type": "string", "analyzer": "edge_ngram_analyzer"},
    "name": {"type": "string", "analyzer": "edge_ngram_analyzer"},
    }
    设定值
    "settings": {
    "number_of_replicas": 0,
    "analysis": {
    "filter": {"edge_ngram_filter": {"type": "edge_ngram", "min_gram": 2, "max_gram": 80}},
    "analyzer": {
    "edge_ngram_analyzer": {
    "type": "custom",
    "tokenizer": "my_tokenizer",
    "filter": ["lowercase", "edge_ngram_filter"],
    },
    "short_edge_ngram_analyzer": {
    "type": "custom",
    "tokenizer": "standard",
    "filter": ["lowercase", "edge_ngram_filter"],
    },
    "case_sensitive": {"type": "custom", "tokenizer": "whitespace", "filter": []}
    },
    "tokenizer": {
    "my_tokenizer": {
    "type": "edge_ngram",
    "min_gram": 2,
    "max_gram": 40,
    "token_chars": [
    "letter","digit"
    ]
    }
    },
    },
    },
    询问
    {'query': 
    {'function_score':
    {'query':
    {'bool': {'should': [{'multi_match': {'query': 'A162412350', 'fields': ['otherId']}}}]}},
    'functions': [{'field_value_factor': {'field': 'positionOrActive', 'modifier': 'none', 'missing': '0', 'factor': '1.1'}}], 'score_mode': 'sum', 'boost_mode': 'sum'}}, 'size': 25}
    文件结果
    [{u'otherId': u'A1624903499',
    u'positionOrActive': 0,
    'searchScore': 18.152431,
    u'id': 35631,,
    {u'otherId': u'A1624903783',
    u'positionOrActive': 0,
    'searchScore': 18.152431,
    u'id': 35632,
    {u'otherId': u'A1624904100',
    u'positionOrActive': 0,
    'searchScore': 18.152431,
    u'id': 35633,]
    设定
    {
    "issuersearch": {
    "settings": {
    "index": {
    "refresh_interval": "1s",
    "number_of_shards": "1",
    "provided_name": "issuersearch",
    "creation_date": "1602687790617",
    "analysis": {
    "filter": {
    "edge_ngram_filter": {
    "type": "edge_ngram",
    "min_gram": "2",
    "max_gram": "80"
    }
    },
    "analyzer": {
    "edge_ngram_analyzer": {
    "filter": Array[2][
    "lowercase",
    "edge_ngram_filter"
    ],
    "type": "custom",
    "tokenizer": "my_tokenizer"
    },
    "short_edge_ngram_analyzer": {
    "filter": Array[2][
    "lowercase",
    "edge_ngram_filter"
    ],
    "type": "custom",
    "tokenizer": "standard"
    },
    "case_sensitive": {
    "type": "custom",
    "tokenizer": "whitespace"
    }
    },
    "tokenizer": {
    "my_tokenizer": {
    "token_chars": Array[2][
    "letter",
    "digit"
    ],
    "min_gram": "2",
    "type": "edge_ngram",
    "max_gram": "40"
    }
    }
    },
    "number_of_replicas": "0",
    "uuid": "dexqFx32RXy-AC3HHpfElA",
    "version": {
    "created": "5060599"
    }
    }
    }
    }
    }

    最佳答案

    这可能是由于standard标记生成器将空格上的标记拆分而引起的,因此您需要提供完整的示例(全索引映射,示例文档以及搜索查询的实际结果以确认它)。
    另外,希望您在name字段上没有使用任何search_analyzer

    关于elasticsearch - Elasticsearch -查询仅搜索5个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64354983/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com