私は書籍のISBN、本のタイトルと本の件名のタイトルのすべての種類の検索帳のElasticSearchサーバーを使用しています。私は、検索方法を持って、ElasticSearchの検索クエリは、多くのリレーションシップモデルを持っています。
aliase、などの
ブックhash_manyのadditional_isbns、被験者
ブックhash_oneを関係を持っており、私のインデックスがどのように見える三つのモデルを使用してインデックスを作成
{
"_index":"books","_type":"book","_id":"9781135028411","_score":0.6377245,
"_source":{"book_vbid": "9781135028411","book_title": "Objectivity, Science and Society","book_author":"Paul A Komesaroff",
"additional_isbn": [{"isbn_value": "0415474876"},{"isbn_value": "9780415474870"}],
"aliase": {"eisbn_canonical":"9781135028411","isbn_canonical":"9781135028411","print_isbn_canonical":"9780415474870","isbn13":"9781135028411","isbn10":"1135028419"},
"subjects": [{"title": "General"},{"title": "General"},{"title": "General"},{"title": "Physical & Earth Sciences -> Science -> General"},{"title": "Social Sciences -> Philosophy -> General"},{"title": "Social Sciences -> Social Sciences -> General"}]}},{
"_index":"books","_type":"book","_id":"9781135027896","_score":0.6348529,
"_source":{"book_vbid": "9781135027896","book_title": "Beyond Empiricism","book_author":"Andrew Tudor",
"additional_isbn": [{"isbn_value": "0415475007"},{"isbn_value": "9780415475006"}],
"aliase": {"eisbn_canonical":"9781135027896","isbn_canonical":"9781135027896","print_isbn_canonical":"9780415475006","isbn13":"9781135027896","isbn10":"1135027897"},
"subjects": [{"title": "General"},{"title": "General"},{"title": "General"},{"title": "Physical & Earth Sciences -> Science -> General"},{"title": "Social Sciences -> Philosophy -> General"},{"title": "Social Sciences -> Social Sciences -> General"}]}},{
"_index":"books","_type":"book","_id":"9781134429059","_score":0.6258716,
"_source":{"book_vbid": "9781134429059","book_title": "Your Murderer","book_author":"Vassily Aksyonov",
"additional_isbn": [{"isbn_value": "9057551039"},{"isbn_value": "9789057551031"}],
"aliase": {"eisbn_canonical":"9781134429059","isbn_canonical":"9781134429059","print_isbn_canonical":"9789057551031","isbn13":"9781134429059","isbn10":"1134429053"},
"subjects": [{"title": "General"},{"title": "General"},{"title": "Humanities -> Performing Arts -> General"},{"title": "Humanities -> TheatrGeneral"}]}}
を行っていますlike、
def self.search(query, options = {})
es_options =
{
query: {
query_string: {
query: query,
default_operator: 'AND',
}
},
sort: '_score',
}.merge!(options)
__elasticsearch__.search(es_options) end
私の要件は次のとおりです。 Book.search('general')
で検索したときのように、検索はすべての書籍の件名の値でなければなりません。 どのようにして、他の列ではなく主題だけで検索することができますか?
ありがとうございます。だから私はすべての本のすべての科目のタイトルだけを検索し、その結果だけを必要とするような要件があります。 – rick
ああ、今は自分の電話から入力していますが、件名に「{general:}」の代わりに{title: 'general}}を使用することをお勧めします。私が私の恋人に戻ったとき、私はもっと深く見ていきます。 – bkunzi01