내 웹 사이트에서 부분 검색이 필요했습니다. 처음에는 edgeNgramFeild를 사용하여 예상대로 작동하지 않았습니다. 사용자 정의 분석기가있는 사용자 정의 검색 엔진을 사용했습니다. 장고 - 건초 더미를 사용하고 있습니다. edgeNgram 필터가있는 사용자 정의 분석기가 작동하지 않습니다.
'settings': {
"analysis": {
"analyzer": {
"ngram_analyzer": {
"type": "custom",
"tokenizer": "lowercase",
"filter": ["haystack_ngram"]
},
"edgengram_analyzer": {
"type": "custom",
"tokenizer": "lowercase",
"filter": ["haystack_edgengram"]
},
"suggest_analyzer": {
"type":"custom",
"tokenizer":"standard",
"filter":[
"standard",
"lowercase",
"asciifolding"
]
},
},
"tokenizer": {
"haystack_ngram_tokenizer": {
"type": "nGram",
"min_gram": 3,
"max_gram": 15,
},
"haystack_edgengram_tokenizer": {
"type": "edgeNGram",
"min_gram": 2,
"max_gram": 15,
"side": "front"
}
},
"filter": {
"haystack_ngram": {
"type": "nGram",
"min_gram": 3,
"max_gram": 15
},
"haystack_edgengram": {
"type": "edgeNGram",
"min_gram": 2,
"max_gram": 15
}
}
}
}
는 검색 색인에 대한
edgengram_analyzer
및
suggest_analyzer
사용합니다. 이것은 어느 정도는 효과가있었습니다. 그러나 30을 입력하면 30을 검색하지 않고 알파벳과 숫자가 결합 된 단어를 검색하는 등 숫자에 대해서는 작동하지 않습니다. 그래서 여러 사이트를 검색했습니다. 그들은 표준 또는
whitespace
토크 나이를 사용하는 suggestsed과
haystack_edgengram
로이 숫자 부분 검색 제안 후 alphabet.The 설정에 대해서도 작동하지 않았다 옆으로 퍼 팅, 전혀 작동하지 않았다 filter.But :
'settings': {
"analysis": {
"analyzer": {
"ngram_analyzer": {
"type": "custom",
"tokenizer": "lowercase",
"filter": ["haystack_ngram"]
},
"edgengram_analyzer": {
"type": "custom",
"tokenizer": "whitepsace",
"filter": ["haystack_edgengram"]
},
"suggest_analyzer": {
"type":"custom",
"tokenizer":"standard",
"filter":[
"standard",
"lowercase",
"asciifolding"
]
},
},
"filter": {
"haystack_ngram": {
"type": "nGram",
"min_gram": 3,
"max_gram": 15
},
"haystack_edgengram": {
"type": "edgeNGram",
"min_gram": 2,
"max_gram": 15
}
}
}
}
아무것도합니까 lowercase
tokenizer가 django-haystack과 작동합니까? 또는 haystack_edgengram
필터가 작동하지 않습니다. 내 지식에 따르면 이처럼 작동해야합니다. 문자로 2 Lazy Dog
으로 간주됩니다. 이런 식의 토큰을 whitespace
[2,Lazy,Dog]
으로 가져와야합니다. haystack_edgengram
필터를 적용하면 [2,la,laz,lazy,do,dog]
토큰을 생성해야합니다. 이처럼 작동하지 않습니다. 내가 잘못 했나요?
필자의 요구 사항은 예를 들어 텍스트 2 Lazy Dog
중 일부 유형이 작동해야합니다. 감사합니다.
편집 : 내 가정 소문자 tokernizer에서이 properly.But은, 위의 텍스트의 경우는 2
을 생략 할 일 토큰 [lazy,dog]
왜 개개인이 아닌 표준 또는 공백이 작동 토크 나이 수 생성?
도와주세요.