我在搜索/索引中非常新,我正在使用Symfony的FosElasticaBundle向Web應用程序提供搜索功能。直到我發現默認設置只允許全文搜索時,我已經設置並運行了,沒有任何問題。FOSElasticaBundle/elasticsearch部分詞匹配配置
然後,我嘗試了幾個小時,使部分單詞匹配沒有運氣。我嘗試了nGram和edgenGram等,但我真的很困惑所有的概念。我確實嘗試搜索有關概念和配置的教程,但沒有真正獲得答案。
這裏是我的配置:
fos_elastica:
clients:
default: { host: localhost, port: 9200 }
serializer:
callback_class: FOS\ElasticaBundle\Serializer\Callback
serializer: serializer
indexes:
website:
client: default
finder: ~
settings:
index:
analysis:
analyzer:
index_analyzer:
tokenizer: "nGram"
filter: ["lowercase", "snowball"]
search_analyzer:
tokenizer: "nGram"
filter: ["lowercase", "snowball"]
filter:
snowball:
type: "snowball"
language: "English"
types:
client:
mappings:
BusinessName: { boost: 10 }
users:
type: "object"
properties:
firstName: { boost: 5 }
lastName: { boost: 5 }
email: { boost: 10 }
persistence:
driver: orm # orm, mongodb, propel are available
model: E1\Bundle\CoreBundle\Entity\Client
listener:
provider: ~
finder: ~
該文檔是沒有幫助的。任何人都可以給我一些關於如何獲得部分詞彙匹配集和/或讓我知道我在哪裏可以找到關於概念(tokenizer,過濾器,分析器)的教程?
但是在開始或者在中間或者結束時,使用('Po *')將獲得所有'Po'或'po'文件,無論放置在哪裏。有沒有辦法限制搜索,只有以'po'開頭的元素才能找到? –