0
我試圖通過輪胎寶石的elasticsearch使用多租戶應用程序。該應用擁有多個帳戶,每個帳戶擁有多個用戶。排除搜索結果中的索引數據 - elasticsearch(輪胎)
現在我想索引基於帳戶ID的用戶。
用戶模型:
include Tire::Model::Search
mapping do
indexes :name, :boost => 10
indexes :account_id
indexes :company_name
indexes :description
end
def to_indexed_json
to_json(:only => [:name, :account_id, :description, :company_name],
)
end
搜索查詢:
User.tire.search do
query do
filtered do
query { string 'vamsikrishna' }
filter :term, :account_id => 1
end
end
end
過濾器工作正常,結果只顯示了過濾的帳戶ID(1)。但是,當我搜索查詢字符串1:
User.tire.search do
query do
filtered do
query { string '1' }
filter :term, :account_id => 1
end
end
end
比方說,有一個名爲1。在這種情況下,結果越來越顯示所有與帳戶ID爲1,用戶也用戶的用戶。這是因爲我在to_indexed_json中添加了account_id。現在,我如何才能顯示名稱爲1的用戶? (所有用戶不應該在命中可用。只有1名用戶應顯示)
當有1沒有用戶的姓名或公司名稱或說明,我只是不想讓任何結果顯示。但是,在我的情況,我解釋說我會得到所有用戶的帳戶ID 1.
感謝您的答覆@javanna獨自我這裏......它不只是名稱字段。我確實有其他字段,如用戶描述,公司名稱以及索引。在那種情況下,我該如何在用戶模型上運行搜索?請幫忙。 –
我不明白:你想在哪裏搜索'1'?我只想到名字領域。如果你想在多個領域進行搜索,你可以使用查詢字符串來指定要搜索的「fields」。 – javanna
我很抱歉發佈這樣的問題。該字符串可以在多個字段中。如果沒有用戶名爲1或公司名稱或說明的用戶,我只是不希望顯示任何結果。但是,在我的情況下,正如我所解釋的,我將獲得帳戶ID爲1的所有用戶。我現在將編輯該問題。 –