Упреждающий поиск - PullRequest
       3

Упреждающий поиск

1 голос
/ 16 сентября 2011

это очень начинающий вопрос, но я пытаюсь понять, как работает усиление определенных элементов в документе.

Я начал с этого запроса,

{
  "from": 0,
  "size": 6,
  "fields": [
    "_id"
  ],
  "sort": {
    "_score": "desc",
    "vendor.name.stored": "asc",
    "item_name.stored": "asc"
  },
  "query": {
    "filtered": {
      "query": {
        "query_string": {
          "fields": [
            "_all"
          ],
          "query": "Calprotectin",
          "default_operator": "AND"
        }
      },
      "filter": {
        "and": [
          {
            "query": {
              "query_string": {
                "fields": [
                  "targeted_countries"
                ],
                "query": "All US"
              }
            }
          }
        ]
      }
    }
  }
}

, затем мне нужно было увеличить некоторые элементы в документе больше, чем другие, поэтому я сделал этот

{
  "from": 0,
  "size": 60,
  "fields": [
    "_id"
  ],
  "sort": {
    "_score": "desc",
    "vendor.name.stored": "asc",
    "item_name.stored": "asc"
  },
  "query": {
    "filtered": {
      "query": {
        "query_string": {
          "fields": [
            "item_name^4",
            "vendor^4",
            "id_plus_name",
            "category_name^3",
            "targeted_countries",
            "vendor_search_name^4",
            "AdditionalProductInformation^0.5",
            "AskAScientist^0.5",
            "BuyNowURL^0.5",
            "Concentration^0.5",
            "ProductLine^0.5",
            "Quantity^0.5",
            "URL^0.5",
            "Activity^1",
            "Form^1",
            "Immunogen^1",
            "Isotype^1",
            "Keywords^1",
            "Matrix^1",
            "MolecularWeight^1",
            "PoreSize^1",
            "Purity^1",
            "References^1",
            "RegulatoryStatus^1",
            "Specifications/Features^1",
            "Speed^1",
            "Target/MoleculeDescriptor^1",
            "Time^1",
            "Description^2",
            "Domain/Region/Terminus^2",
            "Method^2",
            "NCBIGeneAliases^2",
            "Primary/Secondary^2",
            "Source/ExpressionSystem^2",
            "Target/MoleculeSynonym^2",
            "Applications^3",
            "Category^3",
            "Conjugate/Tag/Label^3",
            "Detection^3",
            "GeneName^3",
            "Host^3",
            "ModificationType^3",
            "Modifications^3",
            "MoleculeName^3",
            "Reactivity^3",
            "Species^3",
            "Target^3",
            "Type^3",
            "AccessionNumber^4",
            "Brand/Trademark^4",
            "CatalogNumber^4",
            "Clone^4",
            "entrezGeneID^4",
            "GeneSymbol^4",
            "OriginalItemName^4",
            "Sequence^4",
            "SwissProtID^4",
            "option.AntibodyProducts^4",
            "option.AntibodyRanges&Modifications^1",
            "option.Applications^4",
            "option.Conjugate^3",
            "option.GeneID^4",
            "option.HostSpecies^3",
            "option.Isotype^3",
            "option.Primary/Secondary^2",
            "option.Reactivity^4",
            "option.Search^1",
            "option.TargetName^1",
            "option.Type^4"
          ],
          "query": "Calprotectin",
          "default_operator": "AND"
        }
      },
      "filter": {
        "and": [
          {
            "query": {
              "query_string": {
                "fields": [
                  "targeted_countries"
                ],
                "query": "All US"
              }
            }
          }
        ]
      }
    }
  }
} 

запросзначительно замедлился, я делаю это правильно?Есть ли способ ускорить это?В настоящее время я нахожусь в процессе повышения, когда я индексирую документ, но использование его в запросе таким образом лучше всего подходит для работы моего приложения.Любая помощь очень ценится

1 Ответ

2 голосов
/ 16 сентября 2011

Увеличение времени запроса используется для назначения большего веса термину.Если вы хотите постоянно увеличивать поле, используйте index time boosting .Если вы не хотите использовать это усиление постоянно, то имеет смысл создать отдельное сопоставление только для него с установленным store: "no".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...